1

プロセス ビルダーを使用して、新しいメイン クラスを起動しています。私はそうbuilder.inheritIO();しており、Eclipseで動作します(stdoutとstderrは単一のコンソールにリダイレクトされます)。ただし、jar をエクスポートすると、出力はリダイレクトされません (元のプロセス出力のみが表示されます)。私は 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();
4

1 に答える 1

2

Windows での Java のバグのようです。java8 で修正されます。

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

古い方法を使用して、ストリームのマニュアルをリダイレクトできます。

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


Process p = builder.start();

p.getOutputStream();
p.getInputStream();
p.getInputStream();
于 2014-01-03T17:53:02.800 に答える