0

私のプロジェクトに組み込みたいRhino Javaエンジンを試しています。print, printLine, log, logLineJavaScriptでグローバル関数を定義する Scriptable オブジェクト スコープを作成しました。を呼び出してpullOutput、これらの関数によって出力および記録されたすべてのデータを取得できます。これにより、出力されたすべての出力と記録された出力のペアが返されます。これらの機能をテストしたところ、すべてが期待どおりに機能しましたが、1 つだけ問題がありました。

ログ関数の引数として新しい行を指定すると、文字列には改行文字が含まれず、"\n" だけが含まれます。たとえば、次のコード:

    Context context;
    try {
        context = Context.enter();
        TemplateScope scope = TemplateScope.init(context);
        context.evaluateString(scope, "log(\"test\" + \"\\n\");", "test source", 1, null);
        Pair<String, String> result = scope.pullOutput();
        System.out.println("log is: " + result.b);
    } finally {
        Context.exit();
    }

与えます:

    out is: 
    log is: test\n

これは明らかに私が期待しているものではありません。

完全なコードは次のとおりです。

https://gist.github.com/4139978

4

1 に答える 1