Skip to content

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.scriptingjdk.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。