我在单独的命令行控制台中通过exce()
函数运行了一个外部工具。
command = "cmd.exe /c start /min doxygen " + strDoxyfilePath;
System.out.println("command : " + command);
//pass the command to execute
Process p=Runtime.getRuntime().exec(command);
我用它来读取输入流:
BufferedReader br = new BufferedReader(new InputStreamReader
(p.getInputStream(), "UTF-8")); //read output of doxygen
String line = null;
while ((line = br.readLine()) != null){
System.out.println("I M HERE: "+line);
}
但是循环中控制不进入内部,我想在过程结束时获得正确的信号。
答案 0 :(得分:2)
我认为这是因为你的命令中有start
。您可能正在这样做以避免使用cmd窗口,但我认为您无法与该程序进行交互。
尝试
command = "cmd.exe /c doxygen " + strDoxyfilePath;
另外,请注意
p.getErrrorStream()
)Runtime.exec
不是启动子进程的好方法。 ProcessBuilder
是更新,更好的方法。答案 1 :(得分:1)
我认为经典When Runtime.exec() won't仍然是最好的解释。