2013-02-06 40 views
0

我想在Java中的CMD窗口中啓動一個進程,而做到這一點的最簡單方法是在cmd窗口啓動一個進程,並得到輸出

Runtime.getRuntime().exec("cmd /c start program.exe") 

的問題是,現在我可以」 t從流程中獲得輸入。我如何從流程中獲取輸出並能夠在單獨的CMD窗口中運行它?

+0

我不認爲你可以。據我所知,'start'會啓動一個新的進程...其輸出不會被髮送回命令... – MadProgrammer

回答

0

您的問題是start是一個單獨的命令,其目的是啓動一個全新的進程,與調用startcmd無關。無論什麼start然後執行沒有連接到原始cmd並且不能被您的Java程序訪問。

如果您需要訪問子流程的in /​​ out/err流,請不要使用start

0

嘿,哥們,如果你想給println你的流程的輸出過程中使用這個

Process process= Runtime.getRuntime().exec("cmd /c start program.exe"); 
BufferedReader br = new BufferedReader(new InputStreamReader(process.getInputStream())); 

String line = null; 
while ((line = br.readLine()) != null) { 
     line = br.readLine(); 
     System.out.println(line); 
} 

有了這個,你會得到每個輸出過程正好與CMD輸出相同。

,如果你要處理2個CMD也許你可以用不同的exec

Process process1 = Runtime.getRuntime().exec("cmd /c start program1.exe"); 
Process process2 = Runtime.getRuntime().exec("cmd /c start program2.exe"); 

2點的過程,如果你想要這個跑步用同一個線程,請閱讀線程電子書,你可以在同一時間運行與線程。

相關問題