Java : Runtime.getRuntime().exec() 默认等待吗?

Java : Does Runtime.getRuntime().exec() wait by default?

我有一个关于 Runtime.getRuntime() 的问题。 我正在 运行 宁以下代码。

public class TestMain {
public static void main(String[] args) {
    Runtime rs = Runtime.getRuntime();
    rs.exec("C:\Windows\System32\sampleProgram.exe");
    rs.exec("C:\Windows\System32\sampleProgram2.exe");
    rs.exec("C:\Windows\System32\sampleProgram3.exe");
}
}

现在,如果 sampleProgram 需要更多时间来执行,控件会等待 sampleProgram 完成,还是会去 sampleProgram2 然后 运行 它并行?请帮忙。

不,它不等待。

但是您可以使用waitFor方法等它完成。

rs.exec("C:\Windows\System32\sampleProgram3.exe").waitFor();

注意:如果你使用像cmd start xxxxxx这样的命令,waitFor方法将不会真正起作用,因为start命令开始另一个线程中给定的 command/arguments(这是 of-course 一个 windows 特定的东西)。