【发布时间】:2015-02-18 08:38:01
【问题描述】:
我目前正在做一个Eclipse插件,主要是调用各种脚本并与返回值进行交互。
我的主要问题是 ProcessBuilder。如果我例如调用创建新 Visual Basic 窗口的脚本 在关闭 VB 窗口之前,我无法再与插件交互。似乎cmd命令仍在后台运行,只有在它停止后插件才会再次响应。
我该如何解决?它应该以任何方式异步运行吗?
这是我正在使用的 ProcessBuilder:
public void execute(String scriptCMD) {
try {
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/c",
scriptCMD);
pb.redirectErrorStream(true);
Process p = pb.start();
BufferedReader r = new BufferedReader(new InputStreamReader(
p.getInputStream()));
String line;
while (true) {
line = r.readLine();
if (line == null) {break;}
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
}
}
【问题讨论】:
标签: java asynchronous processbuilder