Java Runtime.exec() 异步输出

标签 java ajax asynchronous struts runtime.exec

我想从长时间运行的 shell 命令中获取可用的输出,而不是等待命令完成。我的代码在新线程中运行

Process proc = Runtime.getRuntime().exec("/opt/bin/longRunning");
InputStream in = proc.getInputStream();
int c;
while((c = in.read()) != -1) {
    MyStaticClass.stringBuilder.append(c);
}

这个问题是我在/opt/bin/longRunning 中的程序必须在分配和读取 InputStream 之前完成。有什么好的方法可以异步执行此操作吗?我的目标是 ajax 请求将返回当前值 MyStaticClass.stringBuilder.toString() 每秒左右。

我卡在 Java 5 上了,仅供引用。

谢谢! W

最佳答案

试试Apache Common Exec .它具有异步执行进程然后将输出“泵送”到线程的能力。检查Javadoc了解更多信息

关于Java Runtime.exec() 异步输出,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7757942/

相关文章:

java - 如何在我的 fragment 上不出现空指针异常?

java - 实现 onClickListener 不起作用

javascript - FormData 在数组中追加项目

javascript - 使用 Ajax 发送数据而不发送到 PHP

java - 我无法使用 getClassLoader 方法加载图像

javascript - 无法通过ajax查询获取值

java - 在 Spring 中使用 Twitter4J 获取推文

JavaScript - 同步等待异步操作(休眠)

javascript - 从 Javascript 对象中的 CSV 中检索解析的数据(使用 Papa Parse)

java - Intellij IDEA 中花哨的代码注释