我读到 Nashorn 支持一些选项,但似乎 all of them are undocumented .
它们可以通过设置系统属性来使用,但它们是全局的。我想以编程方式为单个引擎实例设置它们。
Here you can read可以按照我想要的方式指定选项,但是类是内部的,所以我得到了这种错误:
"Access restriction: The type NashornScriptEngineFactory is not accessible due to restriction on required library C:\Program Files\Java\jdk1.8.0\jre\lib\ext\nashorn.jar".
我找不到使用 Java 脚本 API 设置这些选项的方法。
编辑:
似乎问题是 eclipse 保护我不使用内部类,而不是使用 nashorn 的问题,但我会具体说明这个问题。
有没有办法在不使用不属于 javax.script API 的 nashorn 类的情况下设置单个 nashorn 引擎实例的选项? ?
最佳答案
以下程序为我成功运行:
import javax.script.*;
import jdk.nashorn.api.scripting.*;
public class NashTest {
public static void main(String[] args) throws ScriptException {
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine =
factory.getScriptEngine(new String[] { "--global-per-engine" });
engine.eval("java.lang.System.out.println('hello world!')");
}
}
确保您使用的是 JRE/JDK 8 的已发布版本。
关于java - 如何为单个引擎实例设置 java-8 Nashorn javascript 引擎选项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23660416/