下面的代码获取所有的输出,无论是stdout还是stderr。
String line = String.format("paty/to/script.py");
CommandLine cmd = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream stdout = new ByteArrayOutputStream();
PumpStreamHandler psh = new PumpStreamHandler(stdout);
executor.setStreamHandler(psh);
int exitvalue = executor.execute(cmd);
String output = stdout.toString();我怎样才能把这两条溪流分开?
发布于 2016-01-02 23:28:19
PumpStreamHandler为stderr接受第二个构造函数参数。只有一个OutputStream的构造函数将同时写入stdout和stderr,正如您所观察到的。
因此,下面的方法应该处理它。
String line = String.format("paty/to/script.py");
CommandLine cmd = CommandLine.parse(line);
DefaultExecutor executor = new DefaultExecutor();
ByteArrayOutputStream stdout = new ByteArrayOutputStream();
ByteArrayOutputStream stderr = new ByteArrayOutputStream();
PumpStreamHandler psh = new PumpStreamHandler(stdout, stderr);
executor.setStreamHandler(psh);
int exitvalue = executor.execute(cmd);
String output = stdout.toString();
String error = stderr.toString();https://stackoverflow.com/questions/34571340
复制相似问题