我想将一个Process
的stderr(getErrorStream
)和stdout(getInputStream
)连接到一个单独的Stream
中,以便在其他地方使用。Java的库中有什么东西可以为我做到这一点吗?
注意:没有外部库。我对Apache Commons IO提供的解决方案的存在不感兴趣。我只想知道JDK是否附带了一些东西。
ProcessBuilder.redirectErrorStream(boolean)
可以随心所欲。
public ProcessBuilder redirectErrorStream(boolean redirectErrorStream)
设置此流程生成器的
redirectErrorStream
属性。如果此属性为
true
,则由该对象的start()
方法随后启动的子进程生成的任何错误输出都将与标准输出合并,以便使用Process.getInputStream()
方法读取两者。这样可以更容易地将错误消息与相应的输出关联起来。初始值为false
。
EDIT:@由于Java 5或更高版本,因此应该可以广泛使用。
您可以使用SequenceInputStream合并2个InputStream。
不,JDK中没有这样的东西(直到6,在7中我还没有查看过每个类)。