当前位置: 首页 > 面试题库 >

Java 7下的Nashorn

严亮
2023-03-14
问题内容

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

我已经克隆了仓库并编译了源代码。我要做的就是将其编译为:

  • 将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在jdk.nashorn.internal.runtime.Context.newGlobalTrusted(Context.java:831)在jdk.nashorn.internal.runtime.Context
.newGlobal(Context.java:636)位于jdk.nashorn.api.scripting.NashornScriptEngine
$
2.run(NashornScriptEngine.java:270)位于jdk.nashorn.api.scripting.NashornScriptEngine
$
2.run(NashornScriptEngine.java:266)位于jdk.nashorn.api.scripting.NashornScriptEngine。(NashornScriptEngine.java:104)上的jdk.nashorn.api.scripting.NashornScriptEngine。(NashornScriptEngine.java:104)上的jdk.nashorn.api.scripting.NashornScriptEngine.createNashornGlobal(NashornScriptEngine.java:266)上的java.security.AccessController.doPrivileged(本机方法)
.nashorn.api.scripting.NashornScriptEngine。(NashornScriptEngine.java:78),位于jdk.nashorn.api.scripting.NashornScriptEngineFactory。getScriptEngine(NashornScriptEngineFactory.java:139)

jdk.nashorn.internal.objects.Global在我的课堂上。Nashorn可能会使用其他类加载器吗?


问题答案:

我曾尝试让它在7以下运行,但遇到与您相同的错误。我认为这与Nashorn利用Java 8中的一些新功能有关。

有一个反向移植犀牛的对到位桶JDK 7;
我写了一篇博客文章中详细介绍了如何使用它在我的博客作品在这里。

该bitbucket项目已经有一段时间没有更新了,如果您想与Nashorn一起玩,我建议您使用Java
8的预览版。



 类似资料:
  • 问题内容: 首先,我希望这不是问题,所以我开始了一个新话题。我不知道如何根据已经回答的问题提出问题,所以我做到了。 我对Java很陌生,以下是我的问题。我正在编写一个小型聊天程序,并且使用带有的来显示不同颜色的文本,显示笑脸和显示超链接。 我的问题是,经过一些研究,我发现问题可能是由于Java7造成的,我无法使换行器正常工作。我希望文本自动换行,并包裹在超出组件宽度的字符串中间。自动换行可以很好地

  • 我使用intellij IDEA进行开发,我注意到IDEA在Java7上运行时,maven插件在下载依赖项时出现了问题(我在Windows7)。然而,在Java6上运行它就没有这个问题了。 以下是idea.log的摘录 我按照建议做了以下几点 > 确保我的/etc/hosts文件中有 将添加到我的idea64.exe.vmoptions,因此文件如下所示 谢谢你的帮助。

  • 支持哪些版本的Java? 但是,生成失败,出现以下消息:

  • 我们已经使用jmap在Java 6下运行的大型多服务器应用程序上测量堆大小大约2年了。我们每分钟测量一次。每次测量所用的时间(经过的时间)不到1秒。 我们现在正在Java 7下测试同一个应用程序。现在突然之间,jmap通常需要10秒、20秒,有时甚至更长时间,而且它似乎慢了下来(甚至可能停止!)在那段时间里,JVM。 我们在jmap输出中看到的唯一区别(Java6和Java7之间)是关于有多少字符

  • 我创建了一个需要Java7的。jar。我有Java7(JDK和JRE),我可以双击运行。jar。但是,我想把它打包到一个应用程序中。 我所尝试的:使用苹果的Jar捆绑工具,我成功地创建了一个应用程序;然而,当我运行它时,它很快在码头上出现和消失。当我从终端运行内部文件时,我得到: 根据“UnsupportedClassVersionError unsupported Major.minor ver

  • 问题内容: 我正在尝试编写一个非常简单的GUI应用程序,用于将一些记录插入数据库中,并读回一些记录(花哨的东西,只有1个表和3行,没有关系)。来源… 错误在这里 结束错误 我收到以下错误… (代码)0 (消息)SQL Server没有返回响应。连接已关闭。 (状态)08S01 我已验证用户,密码,服务器名称,端口和数据库名称都是正确的。如果我将用户名更改为无效的用户名,则会收到报告“无法登录”的错

  • 本文向大家介绍java7改善后的异常处理,包括了java7改善后的异常处理的使用技巧和注意事项,需要的朋友参考一下 异常处理有两处改进——multicatch和final重抛。要知道它们对我们有什么帮助,请先看一段Java 6代码。下面这段代码试图查找、打开、分析配置文件并处理此过程中可能出现的各种异常: 在Java 6中处理不同的异常 这个方法会遇到的下面几种异常: 配置文件不存在; 配置文件在

  • 我们有一个运行在java 7上的服务器端进程:java-version:java version“1.7.0”java(TM)SE运行时环境(build 1.7.0-b147)java HotSpot(TM)64位服务器VM(build 21.0-b17,混合模式) 它接受来自我们自己开发的java应用程序(通过正确签名的JNLP启动)的SSL连接。 通常情况下,不管客户机应用程序是运行在Java