JEP 372: Remove the Nashorn JavaScript Engine
Удаление JavaScript-движка Nashorn
| Ответственный | Jim Laskey |
| Тип | Feature |
| Область | JDK |
| Статус | Closed / Delivered |
| Выпуск | 15 |
| Компонент | core-libs / jdk.nashorn |
| Обсуждение | jdk dash dev at openjdk dot java dot net |
| Трудоёмкость | M |
| Длительность | M |
| Связан с | JEP 335: Deprecate the Nashorn JavaScript Engine for Removal |
| Рецензенты | Hannes Wallnoefer, Sundararajan Athijegannathan |
| Одобрен | Mark Reinhold |
| Создан | 2020/01/10 14:29 |
| Обновлён | 2026/09/16 12:50 |
| Задача | 8236933 |
Аннотация
Удалить скриптовый движок JavaScript Nashorn, его API и инструмент jjs. Движок, API и инструмент получили статус Deprecated for Removal (устаревший, будет удалён) в JDK 11 с явным намерением удалить их в одном из будущих выпусков.
Мотивация
JavaScript-движок Nashorn впервые вошёл в JDK 8 в рамках JEP 174 как замена скриптового движка 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, были заранее достаточно предупреждены о предлагаемом удалении и успели подготовить альтернативные решения. Статус Deprecated for Removal для Nashorn в JDK 11 был подтверждён в июне 2018 года, поэтому в JDK 11, 12 и 13 каждое использование API jdk.nashorn.* и инструмента jjs сопровождалось предупреждением о предлагаемом удалении. За это время ни одна группа авторитетных разработчиков не выразила явного желания сопровождать Nashorn в JDK 14 и последующих выпусках.