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.scripting
和jdk.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。