如何使用 jjs 参数启动 java nashorn
How to start java nashorn with jjs arguments
我想读一个nashorn引擎生成的字节码。我发现我需要的参数是 -d=*folder*
我也想应用乐观类型以获得更好的性能,这是由参数 -ot
启用的
我正在通过调用方法初始化引擎:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
engine.eval(myscriptfile);
但是我还没有找到我应该把 jjs 参数放在哪里。
javax.script
API 不允许您传递这些参数。您需要使用显式 Nashorn API 来获取脚本引擎工厂:
import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine("--optimistic-types=true", "-d=someFolder");
希望对您有所帮助。
补充一下 Attila 所说的:您可以使用要传递给 Nashorn 的参数设置 "nashorn.args" 系统 属性。
专业人士:您可以在代码中坚持 javax.script API 并仍然传递参数。
缺点:这会影响在此过程中创建的所有 nashorn 引擎 - 而特定于 nashorn 的 API 允许您使用不同的命令行参数创建不同的引擎实例。此外,您可能无法控制某些部署中的系统 属性 设置。
我想读一个nashorn引擎生成的字节码。我发现我需要的参数是 -d=*folder*
我也想应用乐观类型以获得更好的性能,这是由参数 -ot
我正在通过调用方法初始化引擎:
ScriptEngine engine = new ScriptEngineManager().getEngineByName("nashorn");
engine.setBindings(bindings, ScriptContext.ENGINE_SCOPE);
engine.eval(myscriptfile);
但是我还没有找到我应该把 jjs 参数放在哪里。
javax.script
API 不允许您传递这些参数。您需要使用显式 Nashorn API 来获取脚本引擎工厂:
import jdk.nashorn.api.scripting.NashornScriptEngineFactory;
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine("--optimistic-types=true", "-d=someFolder");
希望对您有所帮助。
补充一下 Attila 所说的:您可以使用要传递给 Nashorn 的参数设置 "nashorn.args" 系统 属性。
专业人士:您可以在代码中坚持 javax.script API 并仍然传递参数。
缺点:这会影响在此过程中创建的所有 nashorn 引擎 - 而特定于 nashorn 的 API 允许您使用不同的命令行参数创建不同的引擎实例。此外,您可能无法控制某些部署中的系统 属性 设置。