0

我已经从 Apaches 的网站上实现了一个示例:http: //commons.apache.org/exec/tutorial.html

我现在需要的是聆听/接收来自繁重过程的反馈。

我知道如何使用 setStreamHandler 方法打印处理结果,但是一旦执行完成就会显示这个结果。

4

1 回答 1

0

我建议你阅读PumpStreamHandlerInputStreamPumper。你基本上想要这些类。只需修改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();
于 2012-06-01T02:15:18.950 回答