Oracle通过JDK增强提案(JEP)355宣布弃用Nashorn 引擎,最终将从未来所有的JDK中删除。ECMA 的语言结构变化太快,Oracle发现,维护Nashorn 引擎变得非常困难。
Nashorn最初是在JDK 8中引入的,用于取代Rhino脚本引擎。当其发布时,Nashorn是ECMA -262 5.1的完整实现,增强了Java和 的兼容性。最近还增加了新的ECMA 6(ES6)特性。借助Nashorn,开发人员可以从 调用Java代码,也可以从Java代码调用 函数。Nashorn可以作为Java应用程序的嵌入式解释器,提供使用Nashorn命令行工具jjs从命令行运行 的能力。当在Java中对 代码求值时,Nashorn实现了javax. API。Oracle表示,弃用Nashorn不会影响javax. API。
移除Nashorn后,有些应用程序可能会因为需要 而无法运行。
具体要弃用的模块如下:
jdk. ing.nashorn——包含jdk.nashorn.api. ing和jdk.nashorn.api.tree包;jdk. ing.nashorn.shell——包含jjs工具;jdk.dyna——包含Dyna 支持库。
Oracle实验室高级研究总监Thomas Wuerthinger表示,GraalVM是一个不错的替代方案,与Nashorn相比,它的性能更好,与ECMA 的兼容性也更好。虽然GraalVM现在还没有生产就绪,但Wuerthinger向开发者社区保证,在Nashorn真正弃用之前,基于GraalVM的 实现将在所有相关平台上实现生产就绪。
真正要在将来的JDK版本中删除相关的类型和模块,Oracle会提交一份单独的JEP。
开发社区的总体反应是担忧,尤其是那些在业务逻辑中大量使用了Nashorn的。Oracle听上去愿意撤回JEP 335,如果有足够的开发人员反馈的话。
按照Oracle的说法,Nashorn的使用情况很难跟踪,因此,有任何回退都会及时发布通知,而不管JEP 335是否通过。使用Nashorn的开发人员应该向Oracle提供反馈,以便他们可以更好地了解Nashorn的使用情况。
感兴趣的读者可以通过InfoQ Java首页时刻关注所有Java相关的新闻。
继续阅读与本文标签相同的文章
5年大数据的经验分享
mysql索引详细介绍及什么时候该使用索引
-
赢在项目管理,如何正确把握需求?
2026-05-15栏目: 教程
-
生命在于休息,脑子不想事情更长寿?
2026-05-15栏目: 教程
-
赛门铁克反病毒软件更新导致Windows蓝屏死机
2026-05-15栏目: 教程
-
传微信上线银行储蓄服务,已与工商银行达成合作
2026-05-15栏目: 教程
-
Windows 10计算器全新升级:三角学、函数聚合
2026-05-15栏目: 教程
