Java 調用外部程序,開啓一個新的進程

背景:java 支持多線程,這是絕大多數程序都滿足的必要條件,因爲多線程個可以增加程序的“吞吐量”,提高用戶對軟件的流暢性體驗。
            同時,java程序也支持開啓新的進程,或者叫做java調用外部應用程序。這裏的實現方式java提供了兩個類:Process、RunTime。
            這些類之間的關係:
            1.通過ProcessBuilder 構建 Process 實例。
            2.通過RunTime構建Process實例。

            代碼如下:

//外部程序命令,這裏是shell 腳本	
String cmds[] = {"/bin/bash","-c","chmod -R 766 /opt/game_plugin/*"};
//Process process1= Runtime.getRuntime().exec(cmds);
		
ProcessBuilder builder = new ProcessBuilder(cmds);
Process process = builder.start();
		
while(process.isAlive()) {//判斷進程是否還存活
	Thread.sleep(1000);
}
System.out.println("進程退出值:"+process.exitValue());

說明:

1.在java 基本類庫中用單詞“Process” 標識“進程”。即,現實世界的“進程”在java 中定義爲Process類,就像“顏色”爲Color類。【java類,是現實世界裏的事物在java 世界裏找的對應事物

2.由於創建的Process 實例沒有終端或控制檯,要與進程進行交互需要Process 提供的三種流:getInputStream,getOutPutSteam,getErrorStream。當然,Process還提供了其他與進程有關的方法。
3.“-c”,上面代碼java 調用的是liunx 下的shell 命令。-c 的意義是命令“/bin/bash”  的“選項 ” 是“chmod -R 766 /opt/game_plugin/*” 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章