Javaコードから実行しているGroovyスクリプトのデフォルト出力(System.out)を変更できる方法があるのだろうかと思います。Groovyスクリプトの出力をどのようにリダイレクトするのですか?
public void exec(File file, OutputStream output) throws Exception {
GroovyShell shell = new GroovyShell();
shell.evaluate(file);
}
とサンプルのGroovyスクリプト:ここ
は、Javaコードで現在def name='World'
println "Hello $name!"
メソッドの実行、書き込み、スクリプトの評価に "Hello World!" というコンソール(System.out)に転送します。出力をパラメータとして渡されたOutputStreamにリダイレクトするにはどうすればよいですか?
これはうまくいくでしょうが、標準出力に書き出された*出力をリダイレクトしたいと思います。特にprintln()のような組み込み関数によって。 –
あなたは* about * rightだった。解決策は、出力をjava.io.PrintStreamにラップし、シェルに "out"プロパティとして渡すことです。 –
よろしく!、私の最初の青銅バッジ! うれしいことです!どのように出力をラップしましたか? – jjchiw