阻止与非阻止呼叫

通常,在调用命令行时,程序将发送命令,然后继续执行。

但是,你可能希望在继续执行之前等待被调用的程序完成(例如,被调用的程序会将数据写入文件,而你的程序需要该数据才能访问该数据。)

这可以通过从返回的 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...