Интерфейс 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_SCOPEBindingsобъектаScriptContextсодержит привязки переменных сценария к объектам приложения, используемым при выполнении этого сценария. - Возвращает:
- Значение, возвращённое при выполнении сценария.
- Выбрасывает:
-
ScriptException— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочкиScriptExceptionдля проверяемых исключений, выброшенных базовыми реализациями сценариев. -
NullPointerException— если любой из аргументов равен null.
eval
Object eval(Reader reader, ScriptContext context) throws ScriptException
То же, что и
eval(String, ScriptContext), но исходный текст сценария считывается из Reader.- Параметры:
-
reader— исходный текст сценария, который должен быть выполнен движком сценариев. -
context—ScriptContext, передаваемый движку сценариев. - Возвращает:
- Значение, возвращённое при выполнении сценария.
- Выбрасывает:
-
ScriptException— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочкиScriptExceptionдля проверяемых исключений, выброшенных базовыми реализациями сценариев. -
NullPointerException— если любой из аргументов равен null.
eval
Object eval(String script) throws ScriptException
Выполняет указанный сценарий. Используется
ScriptContext по умолчанию для ScriptEngine.- Параметры:
-
script— исходный текст на языке сценариев, который должен быть выполнен. - Возвращает:
- Значение, возвращённое при выполнении сценария.
- Выбрасывает:
-
ScriptException— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочкиScriptExceptionдля проверяемых исключений, выброшенных базовыми реализациями сценариев. -
NullPointerException— если аргумент равен null.
eval
Object eval(Reader reader) throws ScriptException
То же, что и
eval(String), но исходный текст сценария предоставляется в виде Reader
- Параметры:
-
reader— исходный текст сценария. - Возвращает:
- Значение, возвращённое сценарием.
- Выбрасывает:
-
ScriptException— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочки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— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочкиScriptExceptionдля проверяемых исключений, выброшенных базовыми реализациями сценариев. -
NullPointerException— если любой из аргументов равен null.
eval
Object eval(Reader reader, Bindings n) throws ScriptException
То же, что и
eval(String, Bindings), но исходный текст сценария предоставляется в виде Reader.- Параметры:
-
reader— исходный текст сценария. -
n—Bindingsатрибутов. - Возвращает:
- Значение, возвращённое сценарием.
- Выбрасывает:
-
ScriptException— если при выполнении сценария произошла ошибка. Движки сценариев должны создавать и выбрасывать оболочки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. Значения обычно доступны в сценариях под соответствующими именами переменных. - Любое другое значение области видимости, определённое в контексте
ScriptContextпо умолчанию дляScriptEngine.
Возвращаемые экземпляры
Bindings должны быть идентичны экземплярам, возвращаемым методом getBindings объекта ScriptContext при вызове с соответствующими аргументами в контексте ScriptContext по умолчанию для ScriptEngine.- Параметры:
-
scope—ScriptContext.ENGINE_SCOPEилиScriptContext.GLOBAL_SCOPE, задающееBindingsдля возврата. РеализацииScriptContextмогут определять дополнительные области видимости. Если контекстScriptContextпо умолчанию дляScriptEngineопределяет дополнительные области видимости, любую из них можно передать, чтобы получить соответствующийBindings. - Возвращает:
Bindingsс указанной областью видимости.- Выбрасывает:
-
IllegalArgumentException— если указанная область видимости недопустима
setBindings
void setBindings(Bindings bindings, int scope)
Задаёт область видимости именованных значений, используемых сценариями. Возможные области видимости:
Метод должен иметь тот же эффект, что и вызов метода
-
ScriptContext.ENGINE_SCOPE— указанныйBindingsзаменяет область видимости движка вScriptEngine. -
ScriptContext.GLOBAL_SCOPE— указанныйBindingsдолжен быть доступен какGLOBAL_SCOPE. - Любое другое значение области видимости, определённое в контексте
ScriptContextпо умолчанию дляScriptEngine.
Метод должен иметь тот же эффект, что и вызов метода
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 не указан.- Возвращает:
- Контекст
ScriptContextпо умолчанию дляScriptEngine.
setContext
void setContext(ScriptContext context)
Задаёт контекст
ScriptContext по умолчанию для ScriptEngine, привязки, средство чтения и записи которого используются при выполнении сценариев, если ScriptContext не указан.- Параметры:
-
context—ScriptContext, заменяющий контекстScriptContextпо умолчанию вScriptEngine. - Выбрасывает:
-
NullPointerException— если контекст равен null.
getFactory
ScriptEngineFactory getFactory()
Возвращает
ScriptEngineFactory для класса, к которому относится этот ScriptEngine.- Возвращает:
ScriptEngineFactory
© 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/ScriptEngine.html