Пакет jdk.jshell.spi

Определяет интерфейс поставщика услуг для подключаемых движков выполнения JShell. Ядро JShell отслеживает и компилирует фрагменты кода, а затем отправляет их (представленные в классе-обёртке) движку выполнения для загрузки, а в случае исполняемых фрагментов кода — для выполнения. Реализация JShell включает в себя по умолчанию движок выполнения (в настоящее время это удалённый процесс, управляемый JDI). Реализовав интерфейс ExecutionControl и его производный класс, а также реализацию интерфейса ExecutionControlProvider и установив их с помощью JShell.Builder.executionEngine(String), можно использовать другие движки выполнения. Где переданная строка является ExecutionControl спецификацией.

ExecutionControl спецификация — это имя ExecutionControlProvider , за которым необязательно следует спецификация параметров. Синтаксис спецификации:

spec   := name : params
        | name
 name   := identifier
 params := param , params
        | param
        |
 param  := identifier ( value )
Где 'name' — это ExecutionControlProvider имя. Где 'param' — это ключ карты из ExecutionControlProvider.defaultParameters() и значение в скобках; см., например, JdiExecutionControlProvider. Где 'identifier' — это последовательность символов части идентификатора Java из базовой многоязычной плоскости.

Например:

  • local
  • jdi:hostname(localhost)
  • failover:1(jdi),2(jdi:launch(true),timeout(3000)),3(local)
Since:
9
См. также:
for execution implementation support
Интерфейс Описание
ExecutionControl

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

ExecutionControlProvider

Поставщик, используемый JShell для генерации движка выполнения, необходимого для оценки фрагментов кода.

ExecutionEnv

Функциональность, предоставляемая подключаемому движку выполнения JShell.

Класс Описание
ExecutionControl.ClassBytecodes

Объединяет имя класса с байт-кодом класса.

Исключение Описание
ExecutionControl.ClassInstallException

При установке (загрузке или переопределении) класса возникла проблема.

ExecutionControl.EngineTerminationException

Произошло непреднамеренное завершение работы движка выполнения.

ExecutionControl.ExecutionControlException

Абстрактный базовый класс всех ExecutionControl исключений.

ExecutionControl.InternalException

Произошла внутренняя проблема.

ExecutionControl.NotImplementedException

Команда не реализована.

ExecutionControl.ResolutionException

Исключение, указывающее, что встречен DeclarationSnippet с неразрешёнными ссылками.

ExecutionControl.RunException

Абстрактный базовый класс исключений, специфичных для запуска пользовательского кода.

ExecutionControl.StoppedException

Исключение, указывающее, что выполнение ExecutionControl.invoke(java.lang.String, java.lang.String) (или теоретически ExecutionControl.varValue(java.lang.String, java.lang.String)) было прервано ExecutionControl.stop().

ExecutionControl.UserException

Произошло стандартное исключение пользователя.

SPIResolutionException

Создание и выброс этого исключения встроены в код, сгенерированный реализацией ядра JShell таким образом, что при выполнении RECOVERABLE_DEFINED пользовательского метода выбрасывается это исключение.

© 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/jdk.jshell/jdk/jshell/spi/package-summary.html

Spec-Zone .ru
спецификации, руководства, описания, API