JEP 372: Remove the Nashorn JavaScript Engine | 移除 Nashorn JavaScript 引擎
摘要
移除 Nashorn JavaScript 脚本引擎及其 API 和 jjs
工具。该引擎、API 和工具在 Java 11 中被 标记为废弃以便在将来的版本中移除,明确意图是在未来的版本中移除它们。
动机
Nashorn JavaScript 引擎最初通过 JEP 174 被整合到 JDK 8 中,作为 Rhino 脚本引擎的替代品。当它发布时,它是 ECMAScript-262 5.1 标准的完整实现。
随着 ECMAScript 语言结构和 API 的快速适应和修改,我们发现 Nashorn 的维护变得具有挑战性。
非目标
这次移除不会以任何方式影响 javax.script
API。
描述
将永久移除两个 JDK 模块:
jdk.scripting.nashorn
——包含jdk.nashorn.api.scripting
和jdk.nashorn.api.tree
包。jdk.scripting.nashorn.shell
——包含jjs
工具。
风险和假设
我们假设依赖 Nashorn 的开发者已经足够了解它的计划移除,并已经做出了替代安排。Nashorn 在 JDK 11 中被标记为废弃以便移除的决定在 2018 年 6 月得到确认,导致在 JDK 11、12 和 13 中使用 jdk.nashorn.*
API 和 jjs
工具时都会收到拟移除的警告。在此期间,没有一组可信的开发者明确表示希望在 JDK 14 及以后版本中维护 Nashorn。