Java拦截脚本输出

示例

// 获取JavaScript引擎的实例
ScriptEngineManager manager = new ScriptEngineManager();
ScriptEngine engine = manager.getEngineByName("nashorn");

// 设置自定义编写器
StringWriter stringWriter = new StringWriter();
// 修改引擎上下文,以便自定义编写器现在是默认设置
// 引擎的输出编写器
engine.getContext().setWriter(stringWriter);

// 执行一些脚本
try {
    engine.eval("print('Redirected text!');");
} catch (ScriptException ex) {
    ex.printStackTrace();
}

// 结果:
// 没有在标准输出上打印任何内容,但是
// stringWriter.toString()包含“重定向文本!”