openjdk.ruOpenJDK на русском

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 и последующих выпусках.