运行可执行文件,收听输出

时间:2014-10-08 16:36:06

标签: java command output

我想为另一个程序创建一个bootstrap程序,它将接受引导程序发送它的命令,并且引导程序需要从它运行的程序接收控制台输出。这怎么可能?

Runtime.getRuntime().exec("COMMAND")

上面的代码执行命令,所以我可以这样做:

Runtime.getRuntime().exec("java -jar file.jar")

但是如何监听输出并向它发送命令,好像它们已经在控制台中输入一样?

1 个答案:

答案 0 :(得分:0)

Process返回的Runtime.exec()对象中,getInputStream()getOutputStream()getErrorStream()的访问者为STDIN,{{1}分别和STDOUT。您必须使用线程和/或流事件来监听和读取您执行的进程。

http://docs.oracle.com/javase/7/docs/api/java/lang/Process.html

另请参阅:java: how to both read and write to & from process thru pipe (stdin/stdout)

虽然,如果你正在调用一个java程序,你可能会更好地设置STDERRPipedInputStream对并直接调用jar的PipedOutputStream例程而不是旋转一个新的JVM。