融合了 JavaScript 之力的 Nashorn 或被 JDK 11 弃用

还没有使用过 Nashorn ?如果感兴趣的话,建议尽快去尝试一下,因为 Jim Laskey 最近提交了一个新的 JEP 335 草案,准备弃用 Nashorn JavaScript 脚本引擎、API 以及该 jjs 工具。

从 JDK 6 开始,Java 就捆绑了基于 Mozilla 的 Rhino 的 JavaScript 引擎,该特性允许开发者将 JavaScript 代码嵌入到 Java 中,甚至从嵌入的 JavaScript 中调用 Java 。随着 JDK 8 的发布,Nashorn 取代 Rhino 成为 Java 的嵌入式 JavaScript 引擎。Nashorn 完全支持 ECMAScript 5.1 规范以及一些扩展,在发布之初被视为真正地融合了 Java 和 JavaScript 之力。因为相较于 Rhino ,它有着 2-10 倍的性能提升。

有意思的是,当年提议加入 Nashorn 的正是目前提议弃用该引擎的 Jim Laskey 。在 JEP 335 的描述中,Jim Laskey 表示随着 ECMAScript 语言的快速迭代以及 API 的调整和修改,Nashorn 已越来越具有挑战性,难以维护(兼容性)。他补充道,Nashorn 的弃用不会影响到 javax.script API 。

打算弃用的三个模块包括:

  • jdk.scripting.nashorn --包括 jdk.nashorn.api.scripting 和 jdk.nashorn.api.tree 包。
  • jdk.scripting.nashorn.shell -- 包含 jjs 工具。运行 jjs 将会出现以下警告:The jjs tool is planned to be removed from a future JDK release 。
  • jdk.dynalink -- 包含 Dynalink 支持库。

目前该 JEP 已在 OpenJDK 的邮件列表中进行讨论,我们将对其进度保持关注。

  • 发表于:
  • 原文链接https://www.oschina.net/news/96868/nashorn-may-be-deprecate
  • 如有侵权,请联系 yunjia_community@tencent.com 删除。

扫码关注云+社区

领取腾讯云代金券