Java7下的Nashorn
我试图让Oracle的Nashorn在Java7下运行 我已经克隆了repo并编译了源代码。我要做的就是编译它:Java7下的Nashorn,java,javascript,nashorn,Java,Javascript,Nashorn,我试图让Oracle的Nashorn在Java7下运行 我已经克隆了repo并编译了源代码。我要做的就是编译它: 将jdk.internal.org.objectweb.asm.*更改为org.objectweb.asm* 更改具有长.hashCode()静态的一行 一切似乎都很愉快,Java7将Nashorn视为一个脚本引擎;但当我尝试获取一个实例时: NashornScriptEngineFactory factory = new NashornScriptEngineFactory()
- 将jdk.internal.org.objectweb.asm.*更改为org.objectweb.asm*
- 更改具有长.hashCode()静态的一行
NashornScriptEngineFactory factory = new NashornScriptEngineFactory();
ScriptEngine engine = factory.getScriptEngine();
我得到一个例外:
java.lang.RuntimeException:java.lang.ClassNotFoundException:
jdk.nashorn.internal.objects.Global at
jdk.nashorn.internal.runtime.Context.newGlobalTrusted(Context.java:831)
位于jdk.nashorn.internal.runtime.Context.newGlobal(Context.java:636)
在
NashornScriptEngine$2.run(NashornScriptEngine.java:270)
在
NashornScriptEngine$2.run(NashornScriptEngine.java:266)
位于java.security.AccessController.doPrivileged(本机方法)
NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:266)
在
NashornScriptEngine.(NashornScriptEngine.java:104)
在
NashornScriptEngine.java:78
在
NashornScriptEngineFactory.getScriptEngine(NashornScriptEngineFactory.java:139)
jdk.nashorn.internal.objects.Global在我的类路径中。Nashorn是否可能使用不同的类加载器?我以前尝试让它在7岁以下工作,但遇到了与您相同的错误。我认为这与Nashorn利用Java8中的一些新特性有关 bitbucket上有一个用于JDK 7的Nashorn函数;我在我的works博客上写了一篇博客文章,详细介绍了如何使用它。您还可以查看以了解更多信息
bitbucket项目已经有一段时间没有更新了,如果你想玩Nashorn,我建议你使用的预览版。谢谢。在现在可用的代码和bitbucket后端口之间,Nashorn源代码有很多变化。给出上述错误的Nashorn代码甚至不在bitbucket版本中。当包含Nashorn的Java8预览出现时,我就停止使用它。如果您通过JSR223 API使用Nashorn,那么如果编写正确,您的代码将与Java 7中的Rhino一起工作,这就是我目前使用它们开发的方式。