我正在试验我想嵌入到我的项目中的 Rhino java 引擎。我创建了一个 Scriptable 对象范围,它定义了print, printLine, log, logLine
JavaScript 中的全局函数。我可以通过调用来提取这些函数打印和记录的所有数据pullOutput
,这将返回一对所有打印的输出和记录的输出。我已经测试了这些功能,一切都按预期工作,但有一件事。
当我为我的日志函数提供一个新行作为参数时,该字符串不包含新行字符,而只是“\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
这显然不是我所期待的。
完整的代码在这里: