阻止与非阻止呼叫
通常,在调用命令行时,程序将发送命令,然后继续执行。
但是,你可能希望在继续执行之前等待被调用的程序完成(例如,被调用的程序会将数据写入文件,而你的程序需要该数据才能访问该数据。)
这可以通过从返回的 Process
实例调用 waitFor()
方法轻松完成。
用法示例:
//code setting up the commands omitted for brevity...
ProcessBuilder pb = new ProcessBuilder(cmds);
try {
Process p = pb.start();
p.waitFor();
} catch (IOException e) {
e.printStackTrack();
} catch (InterruptedException e) {
e.printStackTrace();
}
//more lines of code here...