2014-03-25 35 views
0

我試圖通過Java程序與進程來執行兩個命令COMMANDE控制檯形式的Java

Process p = Runtime.getRuntime().exec(command1); 
Process p2 = Runtime.getRuntime().exec(command2); 

的問題是,第一個是好的,但在傾斜的被Seconde系列建立 它總是在WAITFOR bloqed ()

+0

'waitFor()'等待進程完成執行。你確定第二個過程實際上是爲完成執行而設計的,而不是繼續運行嗎? – Vulcan

回答

1

您可能會運行到可怕的「需要清空流」的問題。有關詳情,請參閱When Runtime.exec() won't

在同一篇文章中

也就是你可以運行,如果你治療getRuntime到其他陷阱一些信息()。EXEC()之類的命令行。

1

當運行打印什麼標準輸出/標準錯誤外部procss,你應該讀什麼寫 - 否則它會阻止一旦它的緩衝區已滿。 你基本上需要一個線程來讀取標準輸出和一個線程讀取每個進程的標準錯誤。

+0

或將你的進程stdout重定向到/ dev/null或日誌文件 – SnakeDoc