Интерфейс ScriptEngine
- Все известные реализующие классы:
AbstractScriptEngine
public interface ScriptEngine
ScriptEngine является фундаментальным интерфейсом, методы которого должны быть полностью функциональными в каждой реализации этого спецификаций. Эти методы предоставляют основные возможности скриптинга. Приложения, написанные для этого простого интерфейса, должны работать с минимальными изменениями в каждой реализации. Он включает методы, которые выполняют скрипты, а также методы, которые устанавливают и получают значения.
Значения представляют собой пары ключ/значение двух типов. Первый тип пар состоит из пар, ключи которых зарезервированы и определены в этой спецификации или отдельными реализациями. Значения в парах с зарезервированными ключами имеют указанные значения.
Другой тип пар состоит из пар, создающих привязки языка Java. Значения в этих парах обычно представлены в скриптах соответствующими ключами или декорированными формами этих ключей.
- С:
- 1.6
Краткое описание полей
| Модификатор и тип | Поле | Описание |
|---|---|---|
static final String |
ARGV |
Зарезервированный ключ для именованного значения, передающего массив позиционных аргументов в скрипт. |
static final String |
ENGINE |
Зарезервированный ключ для именованного значения, являющегося именем реализации ScriptEngine. |
static final String |
ENGINE_VERSION |
Зарезервированный ключ для именованного значения, идентифицирующего версию реализации ScriptEngine. |
static final String |
FILENAME |
Зарезервированный ключ для именованного значения, являющегося именем выполняемого файла. |
static final String |
LANGUAGE |
Зарезервированный ключ для именованного значения, являющегося полным именем поддерживаемого реализацией языка сценариев. |
static final String |
LANGUAGE_VERSION |
Зарезервированный ключ для именованного значения, идентифицирующего версию языка сценариев, поддерживаемого реализацией. |
static final String |
NAME |
Зарезервированный ключ для именованного значения, идентифицирующего короткое имя языка сценариев. |
Краткое описание методов
| Модификатор и тип | Метод | Описание |
|---|---|---|
Bindings |
createBindings() |
Возвращает неинициализированный Bindings. |
Object |
eval |
Аналогично eval(String) за исключением того, что исходный код скрипта предоставляется как Reader
|
Object |
eval |
Аналогично eval(String, Bindings) за исключением того, что исходный код скрипта предоставляется как Reader. |
Object |
eval |
Аналогично eval(String, ScriptContext), где исходный код скрипта считывается из Reader. |
Object |
eval |
Выполняет указанный скрипт. |
Object |
eval |
Выполняет скрипт, используя аргумент Bindings в качестве ENGINE_SCOPE Bindings ScriptEngine во время выполнения скрипта. |
Object |
eval |
Приводит к немедленному выполнению скрипта, исходный код которого является строкой, переданной в качестве первого аргумента. |
Object |
get |
Получает значение, установленное в состоянии этого движка. |
Bindings |
getBindings |
Возвращает область именованных значений. |
ScriptContext |
getContext() |
Возвращает стандартный ScriptContext ScriptEngine , привязки, чтецы и записыватели которого используются для выполнения скриптов, когда ScriptContext не указан. |
ScriptEngineFactory |
getFactory() |
Возвращает ScriptEngineFactory для класса, к которому относится этот ScriptEngine. |
void |
put |
Устанавливает пару ключ/значение в состоянии ScriptEngine, которая может либо создать привязку языка Java для использования при выполнении скриптов, либо использоваться каким-либо другим способом, в зависимости от того, зарезервирован ли ключ. |
void |
setBindings |
Устанавливает область именованных значений для использования скриптами. |
void |
setContext |
Устанавливает стандартный ScriptContext ScriptEngine , привязки, чтецы и записыватели которого используются для выполнения скриптов, когда ScriptContext не указан. |
Краткое описание полей
ARGV
static final String ARGV
Зарезервированный ключ для именованного значения, которое передает массив позиционных аргументов в сценарий.
- См. также:
FILENAME
static final String FILENAME
Зарезервированный ключ для именованного значения, представляющего имя выполняемого файла.
- См. также:
ENGINE
static final String ENGINE
Зарезервированный ключ для именованного значения, представляющего имя
ScriptEngine реализации.- См. также:
ENGINE_VERSION
static final String ENGINE_VERSION
Зарезервированный ключ для именованного значения, идентифицирующего версию
ScriptEngine реализации.- См. также:
NAME
static final String NAME
Зарезервированный ключ для именованного значения, идентифицирующего короткое имя языка сценариев. Имя используется
ScriptEngineManager для поиска ScriptEngine с заданным именем в методе getEngineByName.- См. также:
LANGUAGE
static final String LANGUAGE
Зарезервированный ключ для именованного значения, представляющего полное имя языка сценариев, поддерживаемого реализацией.
- См. также:
LANGUAGE_VERSION
static final String LANGUAGE_VERSION
Зарезервированный ключ для именованного значения, идентифицирующего версию языка сценариев, поддерживаемого реализацией.
- См. также:
Подробное описание методов
eval
Object eval(String script, ScriptContext context) throws ScriptException
Вызывает немедленное выполнение сценария, исходный код которого передается в виде строки в качестве первого аргумента. Сценарий может быть повторно разобран или перекомпилирован перед выполнением. Состояние, оставшееся в механизме из предыдущих выполнений, включая значения переменных и скомпилированные процедуры, может быть доступно во время этого выполнения.
- Параметры:
-
script- Сценарий, который должен быть выполнен механизмом сценариев. -
context-ScriptContext, предоставляющий наборы атрибутов в разных областях видимости. Значения областей видимостиScriptContext.GLOBAL_SCOPE, иScriptContext.ENGINE_SCOPEопределены в спецификации.
ENGINE_SCOPEBindingsScriptContextсодержит привязки переменных сценариев к объектам приложения, которые будут использоваться во время выполнения этого сценария. - Возвращает:
- Значение, возвращаемое после выполнения сценария.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если любой из аргументов равен null.
eval
Object eval(Reader reader, ScriptContext context) throws ScriptException
То же, что и
eval(String, ScriptContext), где источник сценария считывается из Reader.- Параметры:
-
reader- Источник сценария, который должен быть выполнен механизмом сценариев. -
context-ScriptContext, переданный механизму сценариев. - Возвращает:
- Значение, возвращаемое после выполнения сценария.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если любой из аргументов равен null.
eval
Object eval(String script) throws ScriptException
Выполняет указанный сценарий. Используется
ScriptContext по умолчанию для ScriptEngine.- Параметры:
-
script- Исходный код языка сценариев, который необходимо выполнить. - Возвращает:
- Значение, возвращаемое после выполнения сценария.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если аргумент равен null.
eval
Object eval(Reader reader) throws ScriptException
То же, что и
eval(String), за исключением того, что источник сценария предоставляется как Reader
- Параметры:
-
reader- Источник сценария. - Возвращает:
- Значение, возвращаемое сценарием.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если аргумент равен null.
eval
Object eval(String script, Bindings n) throws ScriptException
Выполняет сценарий, используя аргумент
Bindings в качестве ENGINE_SCOPE Bindings ScriptEngine во время выполнения сценария. Используются Reader, Writer и не-ENGINE_SCOPE Bindings ScriptContext по умолчанию. ENGINE_SCOPE Bindings ScriptEngine не изменяется, и его сопоставления не изменяются в результате выполнения сценария.- Параметры:
-
script- Источник для сценария. -
n-Bindingsатрибутов, которые будут использоваться для выполнения сценария. - Возвращает:
- Значение, возвращаемое сценарием.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если любой из аргументов равен null.
eval
Object eval(Reader reader, Bindings n) throws ScriptException
То же, что и
eval(String, Bindings), за исключением того, что источник сценария предоставляется как Reader.- Параметры:
-
reader- Источник сценария. -
n-Bindingsатрибутов. - Возвращает:
- Значение, возвращаемое сценарием.
- Исключения:
-
ScriptException- если возникает ошибка в сценарии. ScriptEngines должны создавать и вызывать оберткиScriptExceptionдля проверенных исключений, вызываемых базовыми реализациями сценариев. -
NullPointerException- если любой из аргументов равен null.
put
void put(String key, Object value)
Устанавливает пару ключ/значение в состоянии ScriptEngine, которая может либо создать привязку языка Java для использования при выполнении сценариев, либо использоваться каким-либо другим способом, в зависимости от того, зарезервирован ли ключ. Должен иметь тот же эффект, что и
getBindings(ScriptContext.ENGINE_SCOPE).put.- Параметры:
-
key- Имя добавляемого именованного значения -
value- Значение добавляемого именованного значения. - Исключения:
-
NullPointerException- если ключ равен null. -
IllegalArgumentException- если ключ пуст.
get
Object get(String key)
Извлекает значение, установленное в состоянии этого механизма. Значение может быть тем, которое было установлено с помощью
setValue или какое-либо другое значение в состоянии ScriptEngine, в зависимости от реализации. Должен иметь тот же эффект, что и getBindings(ScriptContext.ENGINE_SCOPE).get
- Параметры:
-
key- Ключ, значение которого должно быть возвращено - Возвращает:
- значение для данного ключа
- Исключения:
-
NullPointerException- если ключ равен null. -
IllegalArgumentException- если ключ пуст.
getBindings
Bindings getBindings(int scope)
Возвращает область именованных значений. Возможные области:
Экземпляры
-
ScriptContext.GLOBAL_SCOPE- Набор именованных значений, представляющих глобальную область. Если этотScriptEngineсозданScriptEngineManager, то менеджер устанавливает привязки глобальной области. Это может бытьnullесли глобальная область не ассоциирована с этимScriptEngine -
ScriptContext.ENGINE_SCOPE- Набор именованных значений, представляющих состояние этогоScriptEngine. Значения, как правило, видны в скриптах, использующих соответствующие ключи как имена переменных. - Любое другое значение области, определённое в по умолчанию
ScriptContextScriptEngine.
Экземпляры
Bindings, которые возвращаются, должны быть идентичны тем, которые возвращаются методом getBindings ScriptContext с соответствующими аргументами в по умолчанию ScriptContext ScriptEngine. - Parameters:
-
scope- ЛибоScriptContext.ENGINE_SCOPE, либоScriptContext.GLOBAL_SCOPE, что определяет область для возврата. РеализацииScriptContextмогут определять дополнительные области. Если по умолчаниюScriptContextScriptEngineопределяет дополнительные области, любой из них можно передать для получения соответствующейBindings. - Returns:
- Объект
Bindingsс указанной областью. - Throws:
-
IllegalArgumentException- если указанная область недопустима
setBindings
void setBindings(Bindings bindings, int scope)
Устанавливает область именованных значений, которые будут использоваться скриптами. Возможные области:
Метод должен иметь такой же эффект, как вызов метода
-
ScriptContext.ENGINE_SCOPE- УказанныеBindingsзаменяют область движкаScriptEngine. -
ScriptContext.GLOBAL_SCOPE- УказанныеBindingsдолжны быть видимыми какGLOBAL_SCOPE. - Любое другое значение области, определённое в по умолчанию
ScriptContextScriptEngine.
Метод должен иметь такой же эффект, как вызов метода
setBindings ScriptContext с соответствующим значением scope в по умолчанию ScriptContext ScriptEngine. - Parameters:
-
bindings- ОбъектBindingsдля указанной области. -
scope- Указанная область. ЛибоScriptContext.ENGINE_SCOPE, либоScriptContext.GLOBAL_SCOPE, или любое другое допустимое значение области. - Throws:
-
IllegalArgumentException- если область недопустима -
NullPointerException- если привязки равны null, а областьScriptContext.ENGINE_SCOPE
createBindings
Bindings createBindings()
Возвращает неинициализированные
Bindings. - Returns:
- Объект
Bindings, который можно использовать для замены состояния этогоScriptEngine.
getContext
ScriptContext getContext()
Возвращает по умолчанию
ScriptContext ScriptEngine, чьи Bindings, Reader и Writers используются для выполнения скриптов, когда ScriptContext не указан.- Returns:
- По умолчанию
ScriptContextScriptEngine.
setContext
void setContext(ScriptContext context)
Устанавливает по умолчанию
ScriptContext ScriptEngine, чьи Bindings, Reader и Writers используются для выполнения скриптов, когда ScriptContext не указан.- Parameters:
-
context- ОбъектScriptContext, который заменит по умолчаниюScriptContextвScriptEngine. - Throws:
-
NullPointerException- если context равен null.
getFactory
ScriptEngineFactory getFactory()
Возвращает
ScriptEngineFactory для класса, к которому принадлежит этот ScriptEngine.- Returns:
ScriptEngineFactory
© 1993, 2023, 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/21/docs/api/java.scripting/javax/script/ScriptEngine.html