3

我读过 Nashorn 支持一些选项,但似乎所有选项都没有记录

它们可以通过设置系统属性来使用,但它们是全局的。我想以编程方式为单个引擎实例设置它们。

在这里,您可以阅读可以按我想要的方式指定选项,但类是内部的,所以我收到这种错误:

"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 引擎实例的选项?

4

1 回答 1

3

以下程序为我成功运行:

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 的已发布版本。

于 2014-05-14T19:45:27.363 回答