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()
,那么它将等同于我在问题中提供的代码。。正确的?因为这三个将是相互独立的,它们将一个接一个地执行。