我已经从 Apaches 的网站上实现了一个示例:http: //commons.apache.org/exec/tutorial.html
我现在需要的是聆听/接收来自繁重过程的反馈。
我知道如何使用 setStreamHandler 方法打印处理结果,但是一旦执行完成就会显示这个结果。
我已经从 Apaches 的网站上实现了一个示例:http: //commons.apache.org/exec/tutorial.html
我现在需要的是聆听/接收来自繁重过程的反馈。
我知道如何使用 setStreamHandler 方法打印处理结果,但是一旦执行完成就会显示这个结果。
我建议你阅读PumpStreamHandler
和InputStreamPumper
。你基本上想要这些类。只需修改InputStreamPumper.run()
循环。而不是os.write()
,它应该触发您的事件。要让结果在您的进程运行时开始到达,请按如下方式调用它:
CommandLine cmdLine = new CommandLine(yourExecutable);
DefaultExecuteResultHandler resultHandler = new DefaultExecuteResultHandler();
Executor executor = new DefaultExecutor();
executor.setStreamHandler(new YourPumpStreamHandler());
executor.execute(cmdLine, resultHandler);
// until waitFor returns, the process is running and events can be generated
int exitValue = resultHandler.waitFor();