gpt4 book ai didi

java - Java 7 下的 Nashorn

转载 作者:数据小太阳 更新时间:2023-10-29 06:07:12 25 4
gpt4 key购买 nike

我正在尝试让 Oracle 的 Nashorn 在 Java 7 下运行。

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

  • 将 jdk.internal.org.objectweb.asm.* 更改为 org.objectweb.asm.*
  • 更改 Long.hashCode() 静态的一行。

一切似乎都很愉快,Java 7 将 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) at jdk.nashorn.internal.runtime.Context.newGlobal(Context.java:636) at jdk.nashorn.api.scripting.NashornScriptEngine$2.run(NashornScriptEngine.java:270) at jdk.nashorn.api.scripting.NashornScriptEngine$2.run(NashornScriptEngine.java:266) at java.security.AccessController.doPrivileged(Native Method) at jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:266) at jdk.nashorn.api.scripting.NashornScriptEngine.(NashornScriptEngine.java:104) at jdk.nashorn.api.scripting.NashornScriptEngine.(NashornScriptEngine.java:78) at jdk.nashorn.api.scripting.NashornScriptEngineFactory.getScriptEngine(NashornScriptEngineFactory.java:139)

jdk.nashorn.internal.objects.Global 在我的类路径中。 Nashorn 是否使用不同的类加载器?

最佳答案

我之前尝试让它在 7 下运行,但遇到了与您相同的错误。我认为这与 Nashorn 利用了 Java 8 中的一些新特性这一事实有关。

有一个backport bitbucket 上 JDK 7 的 Nashorn;我在我的作品博客上写了一篇详细介绍如何使用它的博文 here .你也可以看看this stack overflow question获取更多信息。

那个bitbucket项目已经有一段时间没有更新了,我建议你使用Java 8的预览。如果你想玩 Nashorn。

关于java - Java 7 下的 Nashorn,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16929981/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com