1
我試圖運行一個控制檯進程,我可以隨後編寫進一步的命令。我的代碼是這樣的如何從Java應用程序運行進程?
ExecutorService service = Executors.newFixedThreadPool(2);
Process process = Runtime.getRuntime().exec("cmd.exe");
service.submit(new StreamReader(process.getInputStream(), System.out, "OUTPUT"));
service.submit(new StreamReader(process.getErrorStream(), System.err, "OUTPUT"));
//process.getOutputStream().close();
PrintWriter writer = new PrintWriter(process.getOutputStream());
Scanner sc = new Scanner(System.in);
while(true){
writer.println(sc.nextLine());
}
}
流閱讀器只是讀取InputStream
和使用PrintWriter
寫出來。我只看到cmd.exe的輸出,如果我關閉OutputStream
。我在這裏弄錯了什麼,如何讓用戶提供更多的命令(如果我關閉了OutputStream
,沒有其他命令的輸出打印到控制檯)。