【问题标题】:How to start java nashorn with jjs arguments如何使用 jjs 参数启动 java nashorn
【发布时间】:2015-09-13 12:04:55
【问题描述】:

我想读取由 nashorn 引擎生成的字节码。我发现我需要的参数是-d=*folder*,我也想应用乐观类型以获得更好的性能,这些参数由argument-ot启用

我正在通过调用方法来初始化引擎:

ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
engine.eval(myscriptfile);

但我还没有找到我应该把 jjs 参数放在哪里。

【问题讨论】:

    标签: javascript java nashorn


    【解决方案1】:

    javax.script API 不允许您传递这些参数。您需要使用显式 Nashorn API 来获取脚本引擎工厂:

    import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
    
    NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
    ScriptEngine engine = factory.getScriptEngine("--optimistic-types=true", "-d=someFolder");
    

    希望对您有所帮助。

    【讨论】:

      【解决方案2】:

      补充 Attila 所说的:您可以使用要传递给 Nashorn 的参数设置“nashorn.args”系统属性。

      专业人士:您可以在代码中坚持使用 javax.script API 并仍然传递参数。

      Con:这会影响在进程中创建的所有 nashorn 引擎 - 而 nashorn 特定 API 允许您使用不同的命令行参数创建不同的引擎实例。此外,您可能无法控制某些部署中的系统属性设置。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-06-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多