2011年3月7日月曜日

Rhinoで標準出力と標準エラー出力

Rhinoで標準出力と標準エラー出力を使う方法。 ちょっと試しただけなので確認不足かもしれませんが、一応投稿です。 javascriptだけでは出力できないのでjavaのクラスを使用します。 Rhinoがjava上で動いているからできるらしい。 次のようなコードで動きました。

var con_err = java.lang.System.err;
con_err.println('標準エラー出力テスト');
con_err.flush();

検索「Rhino 標準出力」で探すとStream系クラスでラッピングしているサンプルコードがあったけど、ラッピングは不要です。 なのでimportPackageも不要。 標準入力は試してません。 そっちもラッピング不要なんでしょうか? 使う当てがないから試しませんけどね。

上の例ではSystem.errオブジェクトを適当な変数に代入して使ってます。 毎回「java.lang~」と書くなら代入は不要です。

java.lang.System.out.println('標準出力テスト');

flushは無くても大丈夫でした。 でもそれは環境によって違うかもしれません。 色んな環境で使うコードではflushしておいた方が良さそうな気配です。