当我通常使用ProcessBuilder生成一个新进程时,我知道我可以通过获取相应的流并等待进程完成来单独获取stdout和stderr。在某些情况下,这会挂起。
我决定将两个流组合起来以避免这个问题。
ProcessBuilder builder = new ProcessBuilder().command(parsedCommand);
builder.redirectErrorStream(true);
Process proc = builder.start();
String out = MyStringBuilder.getStreamOutput(proc.getInputStream());
proc.waitFor();
我不确定如何识别每个流。当我通过将输出重定向到文件来检查某些bash命令的stderr(例如," ls * .fakefile")时,输出看起来与我在stdout中得到的相同。
通常有哪些方法可以区分单输出内部的流?