跳到主要内容

JEP 372:删除 Nashorn JavaScript 引擎

概括

删除 Nashorn JavaScript 脚本引擎和 API 以及该jjs工具。该引擎、API 和工具已在 Java 11 中弃用并删除,并明确打算在未来版本中删除它们。

动机

Nashorn JavaScript 引擎首先通过JEP 174合并到 JDK 8 中,作为 Rhino 脚本引擎的替代品。当它发布时,它是 ECMAScript-262 5.1 标准的完整实现。

随着 ECMAScript 语言结构以及 API 的快速调整和修改,我们发现 Nashorn 的维护具有挑战性。

非目标

此删除不会以任何方式影响 API javax.script

描述

两个JDK 模块将被永久删除:

  • jdk.scripting.nashorn-- 包含jdk.nashorn.api.scriptingjdk.nashorn.api.tree包。

  • jdk.scripting.nashorn.shell-- 包含该jjs工具。

风险和假设

我们假设依赖 Nashorn 的开发商已经充分了解了其拟议的删除,以便做出替代安排。 JDK 11 中的 Nashorn 弃用删除已于 2018 年 6 月得到确认,导致在 JDK 11、12 和 13 中每次使用该jdk.nashorn.*API 和工具时都会标记提议的删除。在此期间,没有一组可信的建议jjs开发人员明确表示希望在 JDK 14 及更高版本中维护 Nashorn。