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

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(java,进程,Process)