簡體   English   中英

是否可以跟蹤控制外部程序的線程的進度?

[英]Is it possible to track the progress of a thread controlling an external program?

我有一個Java-Gnome GUI,它啟動一個單獨的線程來運行我沒有代碼的命令行程序。 我想在GUI中顯示進度條,以顯示到目前為止第二個線程已完成的百分比。

鑒於我/我的程序無法控制外部程序,這是否可行?或者我是否一直不確定脈動進度條? 謝謝

當命令行程序在控制台中報告其進度時,您可以在Java應用程序中讀取此輸出。 為此,您必須使用ProcessBuilder創建一個Process對象:

ProcessBuilder processBuilder = new ProcessBuilder("yourCommandLineProgram");
Process process = processBuilder.start();
OutputStream outputStream = process.getOutputStream();

現在,您可以讀取outputStream對象以獲取命令行程序的文本輸出。

當然,這僅在命令行程序將其進度報告給stdout以及何時可以使用此輸出確定剩下多少工作時才有幫助。 當程序不公開此信息時,將無法確定其進度(實際上,根據暫停問題 ,無法確定一個程序在不完全執行的情況下將運行多長時間)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM