こんにちは、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();