1. 程式人生 > >Java 呼叫外部程式,開啟一個新的程序

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/*”