java - 如何为单个引擎实例设置 java-8 Nashorn javascript 引擎选项

标签 java javascript java-8 nashorn

我读到 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/

相关文章:

java - 管理 Netty 处理程序内部的 CompletionStage

javascript - 如何使用 javascript 或 jquery 检测 IE7 并将类添加到 div

javascript - sencha 如何从事件中获取数据

jakarta-ee - 在 Java EE 7 应用程序中使用 JDK 8 时出现 java.lang.ClassNotFoundException : com. sun.corba.ee.impl.orb.ORBSingleton

Java 8 Stream API toMap 转换为 TreeMap

java - 静态成员驻留在内存中的什么地方,是永久代吗?

Java:优先级队列实现可按正确顺序迭代

java qt 服务器/客户端数据传输

javascript - 在 SharePoint 上使用 JQuery。脚本在两种浏览器上的 Fiddle 中都可以工作,但在 IE 的页面上不起作用

java - 这里的 Optional<Class> 有什么问题?