2010-07-20 26 views

回答

1

你在說什麼反應?該過程是否寫入其標準輸出和/或標準錯誤?如果是這樣,我懷疑Process.getInputStreamProcess.getErrorStream是你在找什麼。從這兩個閱讀,並作出相應的反應。請注意,您可能希望從不同的線程讀取它們,以避免任何一個流的單獨緩衝區被填滿。

或者,如果您不需要兩個分開,只需將中的redirectErrorStream設置爲false,以便合併錯誤和輸出流。

1

您應該啓動一個從Process.getInputStream()getErrorStream()(或者使用ProcessBuilder.redirectErrorStream(true))中讀取的線程,並在流中顯示某些內容時對其進行處理。如何處理它有很多方法 - 正確的方法取決於數據的使用方式。請告訴更多細節。

這裏是一個現實生活中的例子:SbtRunner使用ProcessRunner向命令行應用程序發送命令並等待命令完成執行(當命令完成執行時,應用程序將打印「>」)。有一些間接發生,使得從進程的輸出中讀取更容易(輸出寫入MulticastPipe,然後從OutputReader讀取它)。

+0

感謝您的鏈接,我會檢查出來 – eric2323223 2010-07-20 16:54:34