Java子进程 —(一)
2018-04-18 本文已影响0人
Sandy_678f
import java.io.IOException;
/**
* @author Sandy
* @version ProcessDemo.java, v 0.1 2018-04-18 下午7:37
*/
public class ProcessDemo {
public static void main(String[] args) throws IOException, InterruptedException {
Runtime runtime = Runtime.getRuntime();
//新启动一个子进程
Process process = runtime.exec("pwd");
//子进程向主进程输入信息
process.getInputStream();
//主进程向子进程输出信息
process.getOutputStream();
//获取子进程的错误流
process.getErrorStream();
//等待子进程执行完
process.waitFor();
//销毁子进程
process.destroy();
//获取子进程的退出状态
process.exitValue();
}
}
子进程的输入\输出缓冲区大小有限制,要及时取走子进程的输出信息和错误信息。否则很可能因为信息太多导致被填满,最终导致子进程阻塞。
详见:https://www.jianshu.com/p/c5da92633612