2010-07-20 83 views

回答

1

你在说什么反应?该过程是否写入其标准输出和/或标准错误?如果是这样,我怀疑Process.getInputStreamProcess.getErrorStream是你在找什么。从这两个阅读,并作出相应的反应。请注意,您可能希望从不同的线程读取它们,以避免任何一个流的单独缓冲区被填满。

或者,如果您不需要两个分开,只需将中的redirectErrorStream设置为false,以便合并错误和输出流。

1

您应该启动一个从Process.getInputStream()getErrorStream()(或者使用ProcessBuilder.redirectErrorStream(true))中读取的线程,并在流中显示某些内容时对其进行处理。如何处理它有很多方法 - 正确的方法取决于数据的使用方式。请告诉更多细节。

这里是一个现实生活中的例子:SbtRunner使用ProcessRunner向命令行应用程序发送命令并等待命令完成执行(当命令完成执行时,应用程序将打印“>”)。有一些间接发生,使得从进程的输出中读取更容易(输出写入MulticastPipe,然后从OutputReader读取它)。

+0

感谢您的链接,我会检查出来 – eric2323223 2010-07-20 16:54:34