嗨,我发现了很多关于如何从 java 应用程序运行 dos 批处理并最终让它工作的线程。但是我被困在以下问题上:使用该代码,进程永远不会退出,并且应用程序被卡住。
p = Runtime.getRuntime().exec("ant.bat release",null,new File(".");
p.waitFor();
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
System.out.println("execTest: " + line);
}
现在,如果我在 p.waitFor() 之前进行阅读,它会起作用。有人可以向我解释一下吗?
工作代码:
p = Runtime.getRuntime().exec("ant.bat release",null,new File(".");
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line = reader.readLine();
while (line != null) {
line = reader.readLine();
System.out.println("execTest: " + line);
}
p.waitFor();