我正在使用 javax.script API 执行 kotlin 脚本。我想捕获输出并稍后打印日志。
我可以为 nashorn 脚本引擎做到这一点,但同样不适用于 KotlinScriptEngine。
public void testExampleNashorn() throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
ScriptContext context = engine.getContext();
StringWriter writer = new StringWriter();
context.setWriter(writer);
engine.eval("print(\"Welocme to java worldddd\")");
String output = writer.toString();
System.out.println("Script output: " + output);
}
Nashorn 的输出
Script output: Welocme to java worldddd
为 kotlin 调整时的相同代码片段如下
public void testExampleKotlin() throws ScriptException {
ScriptEngine engine = new ScriptEngineManager().getEngineByName("kotlin");
ScriptContext context = engine.getContext();
StringWriter writer = new StringWriter();
context.setWriter(writer);
engine.eval("println(\"Welocme to java worldddd\")");
String output = writer.toString();
System.out.println("Script output: " + output);
}
kotlin 的输出
Welocme to java worldddd
Script output:
null
我正在使用 kotlin 版本 1.3.72 非常感谢任何帮助。谢谢。