私のプロジェクトに組み込みたいRhino Javaエンジンを試しています。print, printLine, log, logLine
JavaScriptでグローバル関数を定義する 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
これは明らかに私が期待しているものではありません。
完全なコードは次のとおりです。