Spec-Zone.ru › OpenJDK 25

Интерфейс 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(Reader reader)
То же, что и eval(String), но исходный текст сценария предоставляется в виде Reader
Object eval(Reader reader, Bindings n)
То же, что и eval(String, Bindings), но исходный текст сценария предоставляется в виде Reader.
Object eval(Reader reader, ScriptContext context)
То же, что и eval(String, ScriptContext), где исходный текст сценария считывается из Reader.
Object eval(String script)
Выполняет указанный сценарий.
Object eval(String script, Bindings n)
Выполняет сценарий, используя аргумент Bindings как ENGINE_SCOPE Bindings объекта ScriptEngine во время выполнения сценария.
Object eval(String script, ScriptContext context)
Немедленно выполняет сценарий, исходным текстом которого является строка, переданная в качестве первого аргумента.
Object get(String key)
Получает значение, заданное в состоянии этого движка.
Bindings getBindings(int scope)
Возвращает область видимости именованных значений.
ScriptContext getContext()
Возвращает контекст ScriptContext по умолчанию для ScriptEngine, привязки, средства чтения и записи которого используются при выполнении сценариев, если ScriptContext не указан.
ScriptEngineFactory getFactory()
Возвращает ScriptEngineFactory для класса, к которому относится этот ScriptEngine.
void put(String key, Object value)
Задаёт пару «ключ/значение» в состоянии ScriptEngine. В зависимости от того, зарезервирован ли ключ, она может создавать привязку языка Java для использования при выполнении сценариев либо использоваться иным образом.
void setBindings(Bindings bindings, int scope)
Задаёт область видимости именованных значений, используемых сценариями.
void setContext(ScriptContext context)
Задаёт контекст 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_SCOPE Bindings объекта 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

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по API и документацию для разработчиков см. в документации Java SE, содержащей более подробные описания для разработчиков, включая концептуальные обзоры, определения терминов, обходные решения и рабочие примеры кода. Другие версии.
Java является товарным знаком или зарегистрированным товарным знаком Oracle и/или её аффилированных лиц в США и других странах.
Авторские права © 1993, 2025, Oracle и/или её аффилированные лица, 500 Oracle Parkway, Redwood Shores, CA 94065 USA.
Все права защищены. Использование регулируется условиями лицензии и политикой распространения документации.

© 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

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API