2天时间,聊今年最热的 Agent、上下文工程、AI 产品创新等话题。2025 年最后一场~ 了解详情
写点什么

Oracle 弃用 Nashorn JavaScript 引擎

  • 2018-06-17
  • 本文字数:1094 字

    阅读完需:约 4 分钟

Oracle 通过 JDK 增强提案(JEP)355 宣布弃用 Nashorn JavaScript 引擎,最终将从未来所有的 JDK 中删除。ECMAScript 的语言结构变化太快,Oracle 发现,维护 Nashorn JavaScript 引擎变得非常困难。

Nashorn 最初是在 JDK 8 中引入的,用于取代 Rhino 脚本引擎。当其发布时,Nashorn 是 ECMAScript-262 5.1 的完整实现,增强了 Java 和 JavaScript 的兼容性。最近还增加了新的 ECMAScript 6(ES6)特性。借助 Nashorn,开发人员可以从 JavaScript 调用 Java 代码,也可以从 Java 代码调用 JavaScript 函数。Nashorn 可以作为 Java 应用程序的嵌入式解释器,提供使用 Nashorn 命令行工具 jjs 从命令行运行 JavaScript 的能力。当在 Java 中对 JavaScript 代码求值时,Nashorn 实现了javax.script API。Oracle 表示,弃用 Nashorn 不会影响javax.script API。

移除 Nashorn 后,有些应用程序可能会因为需要 JavaScript 而无法运行。

具体要弃用的模块如下:

  • jdk.scripting.nashorn——包含jdk.nashorn.api.scriptingjdk.nashorn.api.tree包;
  • jdk.scripting.nashorn.shell——包含jjs工具;
  • jdk.dynalink——包含 Dynalink 支持库。

Oracle 实验室高级研究总监 Thomas Wuerthinger 表示, GraalVM 是一个不错的替代方案,与 Nashorn 相比,它的性能更好,与 ECMAScript 的兼容性也更好。虽然 GraalVM 现在还没有生产就绪,但 Wuerthinger 向开发者社区保证,在 Nashorn 真正弃用之前,基于 GraalVM 的 JavaScript 实现将在所有相关平台上实现生产就绪。

在 Nashorn 真正弃用之前,基于#GraalVM 的 JavaScript 实现将在所有相关平台上实现生产就绪。它将提供更好的性能,并且完全兼容 ECMAScript 的最新标准。

— Thomas Wuerthinger (@thomaswue) 2018 年 6 月 7 日

真正要在将来的 JDK 版本中删除相关的类型和模块,Oracle 会提交一份单独的 JEP。

开发社区的总体反应是担忧,尤其是那些在业务逻辑中大量使用了 Nashorn 的。Oracle 听上去愿意撤回 JEP 335,如果有足够的开发人员反馈的话。

还有一种选择是有一组可信赖的开发人员清楚表达今后维护 Nashorn 的愿望。如果那种情况在这份 JEP 完善之前出现,那么它还是可以撤回的。如果那是在这份 JEP 完善之后,但是在 Nashorn 被移除之前,则可以再提交一份 JEP 来逆转这次弃用。

按照 Oracle 的说法,Nashorn 的使用情况很难跟踪,因此,有任何回退都会及时发布通知,而不管 JEP 335 是否通过。使用 Nashorn 的开发人员应该向 Oracle 提供反馈,以便他们可以更好地了解 Nashorn 的使用情况。

感兴趣的读者可以通过 InfoQ Java 首页时刻关注所有 Java 相关的新闻。

查看英文原文: Oracle Deprecates the Nashorn JavaScript Engine

2018-06-17 11:248295
用户头像

发布了 1008 篇内容, 共 442.9 次阅读, 收获喜欢 346 次。

关注

评论

发布
暂无评论
发现更多内容

从iOS App启动速度看如何为基础性能保驾护航 | 京东物流技术团队

京东科技开发者

ios 开发 企业号 7 月 PK 榜 APP冷启动 启动速度

出海是产业互联网发展的必然趋势之一

用友BIP

产业互联网 中企出海

西安航天基地人才创新创业大赛正式启动

西安 大赛 比赛 西安航天 企业人才

户外LED显示屏怎样在5G时代下发展?

Dylan

5G 广告 数字化 城市 户外LED显示屏

安全文件传输:如何降低数据丢失的风险

镭速

文件传输 安全文件传输

智能运维进入6.0时代,CloudwiseGPT运维大语言模型强势来袭!

云智慧AIOps社区

智能运维 大模型训练 大模型 大模型时代

CRM系统化整合从N-1做减法实践 | 京东物流技术团队

京东科技开发者

CRM CRM系统 企业号 7 月 PK 榜 系统化整合

软件测试 | MyISAM是什么

测吧(北京)科技有限公司

测试

Nautilus Chain 主网上线,Zepoch 持有者将获第三轮 POSE 空投

西柚子

DevOps国际峰会 | 采访龙智总经理,分享DevOps见解与行业趋势

龙智—DevSecOps解决方案

DevOps 金融行业 devops国际峰会

【升职加薪秘籍】我在服务监控方面的实践(1)-监控蓝图

蓝胖子的编程梦

elasticsearch 性能优化 Grafana 服务监控 #Prometheus

一份数据满足所有数据场景?腾讯云数据湖解决方案及DLC内核技术介绍

腾讯云大数据

数据湖

详解TCP网络协议栈的工作原理

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 7 月 PK 榜

Stepn跑鞋/Jogger慢跑者NFT系统开发案例

薇電13242772558

NFT

手把手带你初探Vue 3.0 | 京东物流技术团队

京东科技开发者

前端 Vue 3 VUE 3.0 源码 企业号 7 月 PK 榜

8月31日,上海!第十八届中国IDC产业(长三角)年度大典即将召开!

中国IDC圈

数据中心

全网最强分布式事务详解

程序员小毕

Java 分布式 分布式事务 后端 架构师

数字孪生(Digital Twin)快速入门:简介以及应用示例

龙智—DevSecOps解决方案

数字孪生 digital twin

比AD更好用的“PCB设计文件转生产文件”工具

华秋PCB

软件 工具 AD PCB PCB设计

软件测试 | MySQL存储引擎

测吧(北京)科技有限公司

测试

3步带你搞定华为云编译构建CodeArts Build “新手村任务”

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 7 月 PK 榜

搜狗输入法双击输入框崩溃问题 | 京东云技术团队

京东科技开发者

搜索引擎 搜索 输入法 企业号 7 月 PK 榜

加速 Selenium 测试执行最佳实践

FunTester

数智融合促进资产共享,实现企业资产效益最大化

用友BIP

资产云

【云计算小知识】云环境是什么意思?有什么优点?

行云管家

云计算 云资源 云管 云环境

服装行业MES系统解决方案|免费使用MES系统

万界星空科技

开源 MES系统 服装行业

三大升级!龙蜥正式推出首款全面拥抱智算的国产操作系统 Anolis OS 23

OpenAnolis小助手

开源 操作系统 龙蜥社区 版本发布 Anolis23

宁波企业等保测评找哪家?怎么做?

行云管家

等保 等级保护 等保测评 宁波

业财税档融合:大企业管理升级的必然选择

用友BIP

税务云 业财税档融合

Oracle弃用Nashorn JavaScript引擎_Java_Kesha Williams_InfoQ精选文章