0

这是我在这里的第一个问题,如果我哪里出错了,请原谅。我正在尝试使用 Ajax 从 html 页面调用服务器上的 shell 脚本。Ajax 函数正在调用 java 动作,而这个 java 动作类正在调用一个 shell 脚本。shell 脚本将在运行时写入输出。我想在浏览器上显示该输出,就像它出现在 shell 上一样。

我现在这样做的方式是将shell的输出写入一个文件,然后在网页上显示该文件的内容,但我只想在脚本写入后立即在网页上显示输出. 该脚本需要 2 分钟才能运行,并且在运行时,它会继续在 shell 上写入输出。

谢谢

4

1 回答 1

0

一种方法是通过ProcessBuilderstart()访问 shell 脚本。

拥有Process实例后,您可以分别通过getOutputStream()getErrorStream()获取其标准输出和标准错误流。

这些 InputStreams 包含您正在寻找的输出。当您阅读它们时,您可以将它们的输出写入您的 servlet 或 JSP 的响应输出流。您需要对进程执行类似于waitFor()之类的操作并创建线程来读取其输出并写入您的 servlet 响应。

于 2013-04-20T21:03:59.000 回答