0
NashornスクリプトエンジンをJavaクラスからリダイレクトしようとしています。これは今私がそれを初期化する方法です。私は、エンジンが実行するスクリプトからの出力をリダイレクトしたいと思います。リダイレクトNashorn stdoutとstderror
String[] nashornArgs = new String[] {"-strict", "--no-java",
"--no-syntax-extensions", "-dump-on-error"};
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine(nashornArgs);
私は(下記)Nashornは、次の引数を持って知っているが、私は正確にし、任意の出力はプログラムによって破棄された方法で初期化するかどうかはわかりません。おそらく、一時ファイルを作成し、エンジンが終了したら一時ファイルを削除しますか?私は面倒です。
--stderr(例えばSTDOUT、ファイル名または別のttyにstderrをリダイレクト)
PARAM:出力コンソール
--stdout(ファイル名または別のttyにSTDOUTをリダイレクト例えば標準エラー出力)
のparam:出力コンソール
しかし、私は動作しませんでした。まだスクリプト内から印刷することができました。エンジンのコンテキストをリセットする必要がありますか? – MarkII
コードサンプルを提供してもよろしいですか? –
@MarkII Nashornのstdout/stderrリダイレクションを示す完全なコード例を提供して私の答えを編集しました。 –