还没有使用过 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 的邮件列表中进行讨论,我们将对其进度保持关注。
领取专属 10元无门槛券
私享最新 技术干货