0
我運行下面的代碼輸出:運行在Java進程生成多個命令,並得到由bufferreader
public static void main(String[] args) throws IOException, InterruptedException {
ProcessBuilder pb = new ProcessBuilder("cmd.exe", "/C", "echo hello");
Process p = pb.start();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(p.getInputStream()));
String line, l = "";
while ((line = bufferedReader.readLine()) != null) {
System.out.println(l);
l = l + line;
}
p.destroy();
bufferedReader.close();
System.out.println("completed");
ProcessBuilder pb1 = new ProcessBuilder("cmd.exe", "/C", "echo hi");
Process p1 = pb1.start();
line = "";
BufferedReader bufferedReader1 = new BufferedReader(new InputStreamReader(p1.getInputStream()));
while ((line = bufferedReader1.readLine()) != null) {
l = l + line;
System.out.println(l);
}
p1.destroy();
bufferedReader1.close();
System.out.println("completed");
}
但在運行我的代碼的結果已經由兩個buffer-reader
正確提取。
問題是程序的執行沒有終止,並且被掛起。
是的,它已經工作。但我怎麼不明白。在我的計劃中,我已經關閉了流程並關閉了流。但是在你的程序中,既沒有關閉進程,也沒有關閉流。但它仍然有效。 – sunny
你的代碼工作正常,也許你正在使用你的程序中的東西,使你的問題,祝你好運@sunny –