Spec-Zone.ru › OpenJDK 25

Интерфейс ScriptEngineFactory

public interface ScriptEngineFactory
ScriptEngineFactory используется для описания и создания экземпляров ScriptEngines.

Каждому классу, реализующему ScriptEngine, соответствует фабрика, предоставляющая метаданные с описанием класса движка.

ScriptEngineManager использует механизм загрузки поставщиков служб, описанный в классе ServiceLoader, для получения экземпляров ScriptEngineFactory. См. ScriptEngineManager() и ScriptEngineManager(java.lang.ClassLoader).
Начиная с:
1.6

Краткое описание методов

Модификатор и тип Метод Описание
String getEngineName()
Возвращает полное имя ScriptEngine.
String getEngineVersion()
Возвращает версию ScriptEngine.
List<String> getExtensions()
Возвращает неизменяемый список расширений файлов, которые обычно используются для идентификации скриптов, написанных на языке, поддерживаемом этим ScriptEngine.
String getLanguageName()
Возвращает имя языка сценариев, поддерживаемого этим ScriptEngine.
String getLanguageVersion()
Возвращает версию языка сценариев, поддерживаемого этим ScriptEngine.
String getMethodCallSyntax(String obj, String m, String... args)
Возвращает String, который можно использовать для вызова метода объекта Java с помощью синтаксиса поддерживаемого языка сценариев.
List<String> getMimeTypes()
Возвращает неизменяемый список типов MIME, связанных со скриптами, которые могут выполняться движком.
List<String> getNames()
Возвращает неизменяемый список кратких имен для ScriptEngine, которые могут использоваться ScriptEngineManager для идентификации ScriptEngine.
String getOutputStatement(String toDisplay)
Возвращает String, который можно использовать в качестве инструкции для отображения указанной строки с помощью синтаксиса поддерживаемого языка сценариев.
Object getParameter(String key)
Возвращает значение атрибута, смысл которого может зависеть от реализации.
String getProgram(String... statements)
Возвращает корректную исполняемую программу на языке сценариев, содержащую заданные инструкции.
ScriptEngine getScriptEngine()
Возвращает экземпляр ScriptEngine, связанный с этим ScriptEngineFactory.

Подробное описание методов

getEngineName

String getEngineName()
Возвращает полное имя ScriptEngine. Например, реализация на основе движка Mozilla Rhino Javascript может вернуть Rhino Mozilla Javascript Engine.
Возвращает:
Имя реализации движка.

getEngineVersion

String getEngineVersion()
Возвращает версию ScriptEngine.
Возвращает:
Версию реализации ScriptEngine.

getExtensions

List<String> getExtensions()
Возвращает неизменяемый список расширений файлов, которые обычно используются для идентификации скриптов, написанных на языке, поддерживаемом этим ScriptEngine. Массив используется ScriptEngineManager для реализации метода getEngineByExtension.
Возвращает:
Список расширений.

getMimeTypes

List<String> getMimeTypes()
Возвращает неизменяемый список типов MIME, связанных со скриптами, которые могут выполняться движком. Список используется классом ScriptEngineManager для реализации метода getEngineByMimetype.
Возвращает:
Список типов MIME.

getNames

List<String> getNames()
Возвращает неизменяемый список кратких имен для ScriptEngine, которые ScriptEngineManager может использовать для идентификации ScriptEngine. Например, реализация на основе движка Mozilla Rhino Javascript может вернуть список, содержащий {"javascript", "rhino"}.
Возвращает:
неизменяемый список кратких имен

getLanguageName

String getLanguageName()
Возвращает имя языка сценариев, поддерживаемого этим ScriptEngine.
Возвращает:
Имя поддерживаемого языка.

getLanguageVersion

String getLanguageVersion()
Возвращает версию языка сценариев, поддерживаемого этим ScriptEngine.
Возвращает:
Версию поддерживаемого языка.

getParameter

Object getParameter(String key)
Возвращает значение атрибута, смысл которого может зависеть от реализации. Ключи, значения которых определены во всех реализациях:
  • ScriptEngine.ENGINE
  • ScriptEngine.ENGINE_VERSION
  • ScriptEngine.LANGUAGE
  • ScriptEngine.LANGUAGE_VERSION
  • ScriptEngine.NAME

Значениями этих ключей являются строки, возвращаемые методами getEngineName, getEngineVersion, getLanguageName, getLanguageVersion соответственно для первых четырех ключей. Для NAME возвращается одна из строк, возвращаемых методом getNames.

Также определен зарезервированный ключ THREADING, значение которого описывает поведение движка при параллельном выполнении скриптов и сохранении состояния. Допустимые значения ключа THREADING:

  • null — реализация движка не является потокобезопасной и не может использоваться для параллельного выполнения скриптов в нескольких потоках.
  • "MULTITHREADED" — реализация движка является потокобезопасной; скрипты могут выполняться параллельно, хотя результаты выполнения скрипта в одном потоке могут быть видны скриптам в других потоках.
  • "THREAD-ISOLATED" — реализация удовлетворяет требованиям «MULTITHREADED», а также движок поддерживает независимые значения символов в скриптах, выполняемых в разных потоках.
  • "STATELESS" — реализация удовлетворяет требованиям "THREAD-ISOLATED". Кроме того, выполнение скриптов не изменяет соответствия в Bindings, которая является областью движка для ScriptEngine. В частности, ключи в Bindings и связанные с ними значения одинаковы до и после выполнения скрипта.


Реализации могут определять ключи, специфичные для конкретной реализации.
Параметры:
key — имя параметра
Возвращает:
Значение указанного параметра. Возвращает null, если ключу не присвоено значение.
Исключения:
NullPointerException — если ключ равен null.

getMethodCallSyntax

String getMethodCallSyntax(String obj, String m, String... args)
Возвращает String, который можно использовать для вызова метода объекта Java с помощью синтаксиса поддерживаемого языка сценариев. Например, реализация для движка Javascript может вернуть;
public String getMethodCallSyntax(String obj,
                                  String m, String... args) {
     String ret = obj;
     ret += "." + m + "(";
     for (int i = 0; i < args.length; i++) {
         ret += args[i];
         if (i < args.length - 1) {
             ret += ",";
         }
     }
     ret += ")";
     return ret;
}
 
Параметры:
obj — имя, представляющее объект, метод которого требуется вызвать. Это имя используется для создания привязок с помощью метода put класса ScriptEngine, метода put объекта ENGINE_SCOPE Bindings или метода setAttribute класса ScriptContext. Идентификатор, используемый в скриптах, может быть преобразованной формой указанного имени.
m — имя вызываемого метода.
args — имена аргументов в вызове метода.
Возвращает:
String для вызова метода с использованием синтаксиса языка сценариев.
Исключения:
NullPointerException — если obj, m, args или любой элемент args равен null.

getOutputStatement

String getOutputStatement(String toDisplay)
Возвращает String, который можно использовать в качестве инструкции для отображения указанной строки с помощью синтаксиса поддерживаемого языка сценариев. Например, реализация для движка Perl может вернуть;
public String getOutputStatement(String toDisplay) {
     return "print(" + toDisplay + ")";
}
Параметры:
toDisplay — строка, которую должна отображать возвращенная инструкция.
Возвращает:
Строка для отображения указанной строки с использованием синтаксиса языка сценариев.

getProgram

String getProgram(String... statements)
Возвращает корректную исполняемую программу на языке сценариев, содержащую заданные инструкции. Например, реализация для движка PHP может вернуть:
public String getProgram(String... statements) {
     String retval = "<?\n";
     int len = statements.length;
     for (int i = 0; i < len; i++) {
         retval += statements[i] + ";\n";
     }
     return retval += "?>";
}
Параметры:
statements — инструкции для выполнения. Это могут быть возвращаемые значения вызовов методов getMethodCallSyntax и getOutputStatement.
Возвращает:
Программу
Исключения:
NullPointerException — если массив statements или любой из его элементов равен null

getScriptEngine

ScriptEngine getScriptEngine()
Возвращает экземпляр ScriptEngine, связанный с этим ScriptEngineFactory. Обычно возвращается новый ScriptEngine, однако реализации могут использовать пул движков, совместно использовать или повторно использовать их.
Возвращает:
Новый экземпляр ScriptEngine.

Сообщить об ошибке или предложить улучшение
Дополнительные справочные материалы по 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/ScriptEngineFactory.html

Spec-Zone.ru

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