Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/304.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/429.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java7下的Nashorn_Java_Javascript_Nashorn - Fatal编程技术网

Java7下的Nashorn

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()

我试图让Oracle的Nashorn在Java7下运行

我已经克隆了repo并编译了源代码。我要做的就是编译它:

  • 将jdk.internal.org.objectweb.asm.*更改为org.objectweb.asm*
  • 更改具有长.hashCode()静态的一行
一切似乎都很愉快,Java7将Nashorn视为一个脚本引擎;但当我尝试获取一个实例时:

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一起工作,这就是我目前使用它们开发的方式。