Пакет javax.script
API для работы со сценариями состоит из интерфейсов и классов, определяющих движки сценариев Java и предоставляющих платформу для их использования в приложениях Java. Этот API предназначен для разработчиков приложений, которые хотят выполнять в своих приложениях Java программы, написанные на языках сценариев. Обычно программы на языках сценариев предоставляются конечными пользователями приложений.
Основные области функциональности пакета javax.script включают
-
Выполнение сценариев: Сценарии — это потоки символов, используемые в качестве исходных данных для программ, выполняемых движками сценариев. Для выполнения сценариев используются методы
evalинтерфейсаScriptEngineи методы интерфейсаInvocable. -
Привязка: Эта возможность позволяет предоставлять объекты Java программам сценариев в виде именованных переменных. Для этой цели используются классы
BindingsиScriptContext. -
Компиляция: Эта функциональность позволяет сохранять промежуточный код, созданный фронтендом движка сценариев, и многократно выполнять его. Это полезно приложениям, выполняющим один и тот же сценарий несколько раз. Такие приложения могут работать эффективнее, поскольку фронтендам движков достаточно выполнить обработку каждого сценария один раз, а не при каждом его выполнении. Обратите внимание, что эта функциональность необязательна, и движки сценариев могут не реализовывать её. Вызывающая сторона должна проверить доступность интерфейса
Compilableс помощью проверки instanceof. -
Вызов: Эта функциональность позволяет повторно использовать промежуточный код, созданный фронтендом движка сценариев. Если компиляция позволяет повторно выполнять целые сценарии, представленные промежуточным кодом, то функциональность вызова позволяет повторно выполнять отдельные процедуры и методы в сценариях. Как и в случае с компиляцией, не все движки сценариев обязаны предоставлять эту возможность. Вызывающая сторона должна проверить доступность
Invocable. -
Обнаружение движков сценариев: К приложениям, написанным с использованием API для работы со сценариями, могут предъявляться особые требования к движкам сценариев. Некоторым может требоваться определённый язык сценариев и/или его версия, другим — определённая реализация движка и/или её версия. Движки сценариев упаковываются установленным способом, чтобы их можно было обнаруживать во время выполнения и запрашивать их атрибуты. Механизм обнаружения движков основан на загрузке поставщиков служб, описанной в классе
ServiceLoader. КлассScriptEngineManagerсодержит методgetEngineFactories, возвращающий все экземплярыScriptEngineFactory, обнаруженные с помощью этого механизма.ScriptEngineFactoryсодержит методы для получения атрибутов движка сценариев.
- С версии:
- 1.6
| Класс | Описание |
|---|---|
| AbstractScriptEngine | Предоставляет стандартную реализацию для нескольких вариантов метода eval. |
| Bindings | Отображение пар «ключ/значение», все ключи которого имеют тип Strings. |
| Compilable | Необязательный интерфейс, реализуемый ScriptEngines, методы которого компилируют сценарии в форму, допускающую многократное выполнение без повторной компиляции. |
| CompiledScript | Базовый класс для классов, хранящих результаты компиляции. |
| Invocable | Необязательный интерфейс, реализуемый ScriptEngines, методы которого позволяют вызывать процедуры в ранее выполненных сценариях. |
| ScriptContext | Интерфейс, реализации которого используются для связи движков сценариев с объектами, например привязками с заданной областью видимости, в хост-приложениях. |
| ScriptEngine | ScriptEngine — это основной интерфейс, методы которого должны быть полностью функциональны в каждой реализации этой спецификации. |
| ScriptEngineFactory | ScriptEngineFactory используется для описания и создания экземпляров ScriptEngines. |
| ScriptEngineManager | ScriptEngineManager реализует механизм обнаружения и создания экземпляров классов ScriptEngine, а также поддерживает коллекцию пар «ключ/значение» для хранения состояния, общего для всех движков, созданных диспетчером. |
| ScriptException | Общий класс Exception для API работы со сценариями. |
| SimpleBindings | Простая реализация Bindings на основе HashMap или другого указанного Map. |
| SimpleScriptContext | Простая реализация ScriptContext. |
© 1993, 2025, Oracle and/or its affiliates. All rights reserved.
Documentation extracted from Debian's OpenJDK Development Kit package.
Licensed under the GNU General Public License, version 2, with the Classpath Exception.
Various third party code in OpenJDK is licensed under different licenses (see Debian package).
Java and OpenJDK are trademarks or registered trademarks of Oracle and/or its affiliates.
https://docs.oracle.com/en/java/javase/25/docs/api/java.scripting/javax/script/package-summary.html