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

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

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

从 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 。

相关推荐