1

关于 JavaScript ScriptEngine 实现的 java 文档说,如果没有活动的安全管理器,可以设置系统属性“rhino.opt.level”。(“当不使用安全管理器时,系统属性“rhino.opt.level”可以在 [-1, 9] 范围内定义。默认情况下,该值设置为 -1,表示禁用优化器。”,请参见http://docs.oracle.com/javase/7/docs/technotes/guides/scripting/programmer_guide/#jsengine )

我现在的问题是,如何做到这一点。我尝试将其设置为环境变量并在代码中使用

System.setProperty("rhino.opt.level", "9");

但它对编译的脚本没有任何影响。是否需要将命令行参数传递给 jvm 或类似的东西?

编辑:我的测试代码:

String script = IOUtil.readTextFile("test.js", "UTF-8"); // reads the file's content

System.setProperty("rhino.opt.level", "9");

final ScriptEngine scriptEngine = new ScriptEngineManager().getEngineByName("JavaScript");

Compilable compiler = (Compilable) scriptEngine;

CompiledScript cs = compiler.compile(script);

cs.eval();
4

0 回答 0