Изходът за пренасочване на Java Process Builder работи в Eclipse, а не като jar

Използвам конструктора на процеси, за да стартирам нови основни класове. Правя builder.inheritIO(); и работи в Eclipse (stdout и stderr пренасочват към единичната конзола). Въпреки това, когато експортирам буркан, изходът не се пренасочва (показва се само оригиналният изход на процеса). Аз съм на Java 7. Някакви идеи къде да търся?

Малко код:

ProcessBuilder builder = new ProcessBuilder(arr);
//builder.redirectOutput();
//builder.redirectError();
//builder.redirectOutput(ProcessBuilder.Redirect.INHERIT);
// those don't work either
builder.inheritIO();
Process p = builder.start();

person Raekye    schedule 08.02.2013    source източник


Отговори (1)


Изглежда, че е грешка в java под windows. Ще бъде коригирано в java8.

https://bugs.openjdk.java.net/browse/JDK-8023130 .

Можете да използвате стария начин и да пренасочите потоците ръчно.

ProcessBuilder builder = new ProcessBuilder("...");


Process p = builder.start();

p.getOutputStream();
p.getInputStream();
p.getInputStream();
person thewall13    schedule 03.01.2014