Java:Runtime.getRuntime().exec()默认情况下是否等待?
我有一个关于Java:Runtime.getRuntime().exec()默认情况下是否等待?,java,runtime.exec,Java,Runtime.exec,我有一个关于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\\sampleProgra
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
命令会在另一个线程中启动给定的命令/参数(这当然是windows特有的事情)。不,它不会等待
但是您可以使用waitFor
方法等待它完成
rs.exec("C:\\Windows\\System32\\sampleProgram3.exe").waitFor();
注意:如果您使用像
cmd start xxxxxx
这样的命令,waitFor
方法不会真正起作用,因为start
命令会在另一个线程中启动给定的命令/参数(这当然是windows特有的事情)。感谢您的快速回复。因此,如果我创建3个不同的rs
对象,比如rs1
,rs2
,rs3
,并对每个对象调用waitFor()
,那么它将等同于我在问题中提供的代码。。正确的?因为这三个将是相互独立的,他们将被一个接一个地执行。感谢您的快速回复。因此,如果我创建3个不同的rs
对象,比如rs1
,rs2
,rs3
,并对每个对象调用waitFor()
,那么它将等同于我在问题中提供的代码。。正确的?因为这三个将是相互独立的,它们将一个接一个地执行。