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