baa*_*ger 2 java multithreading
我有一个Java-Gnome GUI,它启动一个单独的线程来运行我没有代码的命令行程序.我想在GUI中显示一个进度条,以显示到目前为止已完成第二个线程的百分比.
鉴于我/我的程序无法控制外部程序这是可能的还是我坚持不确定的脉冲进度条?谢谢
当命令行程序在控制台中报告其进度时,您可以在Java应用程序中读取此输出.为此,您必须使用ProcessBuilder创建Process对象:
ProcessBuilder processBuilder = new ProcessBuilder("yourCommandLineProgram");
Process process = processBuilder.start();
OutputStream outputStream = process.getOutputStream();
Run Code Online (Sandbox Code Playgroud)
现在,您可以读取该outputStream对象以获取命令行程序的文本输出.
当然,这只会在命令行程序向stdout报告其进度以及何时可以使用此输出来确定剩余工作量时帮助您.当程序没有公开这些信息时,就无法找到它的进展(事实上,根据暂停问题,如果没有完全执行它,就无法确定程序运行多长时间).
| 归档时间: |
|
| 查看次数: |
372 次 |
| 最近记录: |