我正在尝试直接从jdk.nashorn.*名称空间初始化Oracle的javascript nashorn引擎.
(nashorn库是2013年1月的测试版).
有一个Web示例,使用javax.script.ScriptEngineManager实用程序类调用Nashorn引擎的引擎实例.
var engine = ScriptEngineManager.getEngineByName(*)
但是,我想远离ScriptEngineManager,所以我需要以Rhino可以直接调用的方式直接调用engine.
Context cx = Context.enter();
Scriptable scope = cx.initStandardObjects();
如何直接创建nashorn引擎实例?
解决方法:
按应用程序/ javascript Hashorn类型的javax脚本引擎,取回脚本引擎并告诉其执行操作,它还提供了可调用和可编译的接口.
用法示例:
import javax.*; //lib imports
// we should use the javax.script API for Nahsorn
ScriptEngineManager m = new ScripteEngineManager();
ScriptEngine e = m.getEngineByname("nashorn");
try {
e.eval("print('hello nashorn !')");
} catch(Exception e) {
// using jdk lower then version 8 maybe ?
}