2014-01-10 47 views
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,沒有其他命令的輸出打印到控制檯)。

回答

2

您應該在StreamReader中刷新()PrintWriter。

相關問題