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 特定的东西)。
我有一个关于 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 特定的东西)。