我已經在我的Java代碼中啓動了一個進程,這個進程需要很長時間才能運行,並且可能會不時產生一些輸出。我需要在產生任何輸出時作出反應,最好的方法是什麼?監視進程輸出及其執行的最佳方式
0
A
回答
1
你在說什麼反應?該過程是否寫入其標準輸出和/或標準錯誤?如果是這樣,我懷疑Process.getInputStream
和Process.getErrorStream
是你在找什麼。從這兩個閱讀,並作出相應的反應。請注意,您可能希望從不同的線程讀取它們,以避免任何一個流的單獨緩衝區被填滿。
或者,如果您不需要兩個分開,只需將中的redirectErrorStream
設置爲false,以便合併錯誤和輸出流。
1
您應該啓動一個從Process.getInputStream()
和getErrorStream()
(或者使用ProcessBuilder.redirectErrorStream(true)
)中讀取的線程,並在流中顯示某些內容時對其進行處理。如何處理它有很多方法 - 正確的方法取決於數據的使用方式。請告訴更多細節。
這裏是一個現實生活中的例子:SbtRunner使用ProcessRunner向命令行應用程序發送命令並等待命令完成執行(當命令完成執行時,應用程序將打印「>」)。有一些間接發生,使得從進程的輸出中讀取更容易(輸出寫入MulticastPipe,然後從OutputReader讀取它)。
相關問題
- 1. 什麼是監視大量Ruby進程的最佳方式?
- 2. 最佳實踐:監視進程
- 3. 自動執行郵件進程的最佳方式
- 4. 什麼是監視.NET應用程序的最佳方式?
- 5. 運行「無盡」進程監控MySQL的最佳方法?
- 6. 執行涉及Java的RAW套接字編程的最佳方式
- 7. 執行搜索的最佳方式
- 8. 執行此操作的最佳方式
- 9. 處理線程最大執行時間的最佳方式(Java)
- 10. 使用C#進行視頻流式傳輸的最佳實踐
- 11. 監視文件傳輸的最佳方法(Java和C)
- 12. 阻止主線程完成其執行的最佳方法
- 13. 最佳的方式來監控帶寬
- 14. 監視tomcat執行程序?
- 15. 調用可執行文件並在Python中獲取輸出的最佳方式
- 16. 以編程方式添加和刪除視圖及其控制器的最佳方式是什麼?
- 17. 監視IOCTLs的最佳方式是什麼?
- 18. Web服務性能監視器的最佳方式
- 19. 經常監視位置的最佳方式
- 20. 使用bootstrap選項卡及其內容的最佳方式
- 21. 什麼是從PHP輸出新行到shell的最佳方式?
- 22. 以編程方式設置輸出的最佳做法?
- 23. 什麼是編程讀取ildasm輸出的最佳方式
- 24. 監控進程的最佳數據存儲方案
- 25. 監視啓動過程的最佳方法
- 26. 列出線程及其動作的最佳擺動容器?
- 27. 如何在Windows中監視進程/程序的執行?
- 28. 包含視圖其他視圖的最佳方式
- 29. 監視進程
- 30. 最大輸出的最佳線程數
感謝您的鏈接,我會檢查出來 – eric2323223 2010-07-20 16:54:34