【发布时间】:2015-04-20 11:13:56
【问题描述】:
我正在使用ProcessBuilder 类和Process 类从java 执行一个.exe 文件。解释我在做什么:
builder = new ProcessBuilder(commands);
builder.redirectErrorStream(true);
Process process = builder.start();
process.waitFor();
我只是想知道,“waitFor()”要等多久?是等到我的 .exe 执行完毕,还是等到执行完成?
我的 .exe 是经过编译的 AutoIt 脚本。这意味着,可能存在诸如鼠标移动之类的交互,这需要一些时间。 所以我需要知道我的 Java 代码在调用 .exe 后是否继续执行,或者它是否真的在等待它。
我想要实现的是两个脚本的轮换执行,但我担心我的 Java 代码正在执行第二个脚本,而第一个脚本仍在运行。 有没有人解决这个问题?我很高兴有任何想法。
【问题讨论】:
-
我引用文档:“如果需要,使当前线程等待,直到此 Process 对象表示的进程终止。如果子进程已经终止,则此方法立即返回.”。
-
看看when-runtime-exec---won-t。对
Process.waitFor()用例有很好的描述。
标签: java process console wait processbuilder