我有以下代码片段:
Process proc = runtime.exec(command);
errorGobbler = new ErrorStreamGobbler(proc.getErrorStream(), logErrors, mdcMap);
outputGobbler = new OutputStreamGobbler(proc.getInputStream(), mdcMap);
executor.execute(errorGobbler);
executor.execute(outputGobbler);
processExitCode = proc.waitFor();
Run Code Online (Sandbox Code Playgroud)
gobblers Runnable使用a BufferedReader来读取执行过程的输入和错误流.虽然这大部分时间都有效,但我偶尔会看到窗口(约2分钟左右),我得到的processExitCode是0,表示正常终止,但输入和错误流中没有任何内容 - 甚至没有指示结束-流.
就像我之前说过的那样,这种情况大部分时间都有效,但这种失败每隔一段时间就会发生 - 我完全感到困惑.有任何想法吗?
碎布