Java 使用Apache Exec在命令执行期间接收反馈

Java 使用Apache Exec在命令执行期间接收反馈,java,apache,exec,Java,Apache,Exec,我在Apaches的web上实现了一个示例: 我现在需要的是倾听/接收来自繁重流程的反馈 我知道如何使用setStreamHandler方法打印流程结果,但执行完成后会显示此结果。我建议您阅读PumpStreamHandler和InputStreamPumper。你基本上想要的就是这些类。只需修改InputStreamPumper.run()循环。它应该触发您的事件,而不是os.write()。要允许结果在进程运行时开始到达,请按如下方式调用它: CommandLine cmdLine = ne

我在Apaches的web上实现了一个示例:

我现在需要的是倾听/接收来自繁重流程的反馈


我知道如何使用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();