使用 commons-exec 流式输出?
谁能给我一个如何流式传输使用 DefaultExecutor
执行的外部程序的输出的示例?我没有找到任何描述如何执行此操作的文档。
我的外部进程将运行几个小时,因此仅获取所有输出数据是不可行的;它必须被流式传输。
Can anyone give me an example of how to stream the output of an external program executed with DefaultExecutor
? I'm not finding any documentation describing how to do this.
My external process will run for several hours, so just grabbing all output data isn't feasible; it must be streamed.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
注意:此解决方案是同步的,因此它不会流式传输。您需要在单独的线程中读取,或使用执行命令的异步版本。
Note: this solution is synchronous, so it won't stream. You'll need to read is in a separate thread, or use the asynchronous version of the execute command.
下面是一些使用 Runtime.exec 的示例代码。调整它以适应您的使用会很简单。
来自 http://www.javaworld .com/javaworld/jw-12-2000/jw-1229-traps.html?page=4
编辑:这并不能完全回答问题,因为它使用 JDK 类,但它可以工作。
Below is some sample code for using Runtime.exec. it would be simple to adapt it to your use.
From http://www.javaworld.com/javaworld/jw-12-2000/jw-1229-traps.html?page=4
EDIT: This does not exactly answer the question, since it uses the JDK classes, but it works.