【发布时间】:2014-04-17 10:50:04
【问题描述】:
这可能是一个微不足道的问题,但我无法轻易找到答案。我有一个简单的 Java 程序:
System.setOut(new PrintStream(new File("stdout.txt")));
...
...
ProcessBuilder pb = new ProcessBuilder("... some args ...");
pb.inheritIO();
pb.start().waitFor();
我的意图是将进程的所有输出(包括子pb)存储在stdout.txt 中。但是,这似乎不起作用,pb 的输出被重定向到我的进程父进程的标准输出,就好像从未调用过 System.setOut(...)。
有什么方法可以使用pb.inheritIO/pb.inheritOutput 方法重定向到重定向 System.out?我错过了什么明显的东西吗?我知道我可以通过在线程中手动读取孩子的标准输出来做到这一点旧方法,但这更麻烦。
干杯, 杰克
【问题讨论】:
-
想知道是否有人对此有一些 cmets/答案?
-
你有什么运气吗?我也有同样的问题。
-
不,不是。我不得不回到在后台转储流的线程。
-
我也必须这样做。没有灵丹妙药:(
标签: java processbuilder system.out