Пакет javax.script
API для сценариев состоит из интерфейсов и классов, которые определяют движки Java Scripting и предоставляют фреймворк для их использования в приложениях Java. Этот API предназначен для использования разработчиками приложений, которые хотят выполнять программы, написанные на языках сценариев, в своих приложениях Java. Программы на языке сценариев обычно предоставляются конечными пользователями приложений.
Основные области функциональности пакета javax.script включают
-
Выполнение сценариев: Сценарии представляют собой потоки символов, используемые в качестве источников программ, выполняемых движками сценариев. Выполнение сценариев использует методы
evalинтерфейсаScriptEngineи методы интерфейсаInvocable. -
Связывание: Эта возможность позволяет экспонировать объекты Java для программ сценариев в качестве именованных переменных. Для этой цели используются классы
BindingsиScriptContext. -
Компиляция: Эта функциональность позволяет хранить и многократно выполнять промежуточный код, сгенерированный передней частью движка сценариев. Это выгодно для приложений, которые выполняют один и тот же сценарий несколько раз. Эти приложения могут повысить эффективность, так как передние части движков должны выполнять код только один раз на сценарий, а не каждый раз при выполнении сценария. Обратите внимание, что эта функциональность является необязательной, и движки сценариев могут ее не реализовывать. Вызывающие стороны должны проверять наличие интерфейса
Compilableс помощью проверки instanceof. -
Вызов: Эта функциональность позволяет повторно использовать промежуточный код, сгенерированный передней частью движка сценариев. В то время как компиляция позволяет повторно выполнять целые сценарии, представленные промежуточным кодом, функциональность вызова позволяет повторно выполнять отдельные процедуры/методы в сценариях. Как и в случае с компиляцией, не все движки сценариев обязаны предоставлять эту функциональность. Вызывающая сторона должна проверить наличие
Invocable. -
Обнаружение движка сценариев: Приложения, написанные для API сценариев, могут иметь специфические требования к движкам сценариев. Некоторые могут потребовать определенный язык сценариев и/или версию, в то время как другие могут потребовать определенный движок реализации и/или версию. Движки сценариев упаковываются определенным образом, чтобы движки можно было обнаружить во время выполнения и запросить их атрибуты. Механизм обнаружения движков основан на механизме загрузки поставщиков служб, описанном в классе
ServiceLoader.ScriptEngineManagerвключает методgetEngineFactoriesдля получения всех экземпляровScriptEngineFactory, обнаруженных с помощью этого механизма.ScriptEngineFactoryимеет методы для запроса атрибутов движка сценариев.
- Since:
- 1.6
| Класс | Описание |
|---|---|
| AbstractScriptEngine | Обеспечивает стандартную реализацию для нескольких вариантов метода eval. |
| Bindings | Сопоставление пар ключ/значение, все ключи которых Strings. |
| Compilable | Необязательный интерфейс, реализуемый ScriptEngines, чьи методы компилируют сценарии в форму, которая может выполняться повторно без повторной компиляции. |
| CompiledScript | Расширяется классами, которые хранят результаты компиляции. |
| Invocable | Необязательный интерфейс, реализуемый ScriptEngines, чьи методы позволяют вызывать процедуры в сценариях, которые были ранее выполнены. |
| ScriptContext | Интерфейс, реализующие классы которого используются для подключения движков сценариев к объектам, таким как области видимости Bindings, в приложениях-хостах. |
| ScriptEngine | ScriptEngine является основным интерфейсом, чьи методы должны быть полностью функциональными в каждой реализации данного спецификации. |
| ScriptEngineFactory | ScriptEngineFactory используется для описания и создания ScriptEngines. |
| ScriptEngineManager | ScriptEngineManager реализует механизм обнаружения и создания классов ScriptEngine и также поддерживает коллекцию пар ключ/значение, хранящих состояние, общее для всех движков, созданных менеджером. |
| ScriptException | Общий класс Exception для API сценариев. |
| SimpleBindings | Простая реализация Bindings, поддерживаемая HashMap или каким-либо другим указанным Map. |
| SimpleScriptContext | Простая реализация ScriptContext. |
© 1993, 2021, 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/17/docs/api/java.scripting/javax/script/package-summary.html