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 已经变得难以维护。
非目标
此移除操作绝不会影响 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。