0
我實現了從阿帕奇的網絡爲例接收命令執行過程中的反饋:http://commons.apache.org/exec/tutorial.html使用Apache Exec的
我現在需要的是監聽/沉重的過程中收到的反饋意見。
我知道如何使用setStreamHandler方法打印處理結果,但是一旦執行完成就會顯示此結果。
我實現了從阿帕奇的網絡爲例接收命令執行過程中的反饋:http://commons.apache.org/exec/tutorial.html使用Apache Exec的
我現在需要的是監聽/沉重的過程中收到的反饋意見。
我知道如何使用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();