-
- すべてのスーパー・インタフェース:
AutoCloseable
- 既知のすべての実装クラス:
DirectExecutionControl,JdiDefaultExecutionControl,JdiExecutionControl,LocalExecutionControl,RemoteExecutionControl,StreamingExecutionControl
public interface ExecutionControl extends AutoCloseable
このインタフェースは、プラガブルなJShell実行エンジンを実装するために指定する必要がある機能を指定します。このサービス・プロバイダ・インタフェースのオーディエンスは、JShell APIをサポートする独自のバージョンの実行エンジンを実装したいエンジニアです。
スニペットは、'ラッパー・クラス'でラップされたコードにコンパイルされます。 実行エンジンは、コアJShell実装によってロードに使用され、実行可能スニペットの場合はスニペットを実行します。
このインタフェースで定義されたメソッドは、コアJShell実装によってのみコールする必要があります。
- 導入されたバージョン:
- 9
-
-
ネストされたクラスのサマリー
ネストされたクラス 修飾子と型 インタフェース 説明 static classExecutionControl.ClassBytecodesクラス名をクラス・バイトコードにバンドルします。static classExecutionControl.ClassInstallExceptionクラス・インストール(ロードまたは再定義)で問題が発生しました。static classExecutionControl.EngineTerminationException禁止されていない実行エンジンの終了が発生しました。static classExecutionControl.ExecutionControlExceptionすべてのExecutionControl例外の抽象ベース。static classExecutionControl.InternalException内部的な問題が発生しました。static classExecutionControl.NotImplementedExceptionコマンドは実装されていません。static classExecutionControl.ResolutionException未解決の参照を含むDeclarationSnippetが検出されたことを示す例外。static classExecutionControl.RunException実行中のユーザー・コードに固有の例外抽象ベース。static classExecutionControl.StoppedExceptioninvoke(java.lang.String, java.lang.String)(または理論的にはvarValue(java.lang.String, java.lang.String))がstop()によって中断されたことを示す例外。static classExecutionControl.UserException通常のユーザー例外が発生しました。
-
メソッドのサマリー
すべてのメソッド 静的メソッド インスタンス・メソッド 抽象メソッド 修飾子と型 メソッド 説明 voidaddToClasspath(String path)実行クラス・パスにパスを追加します。voidclose()この実行エンジンを停止します。ObjectextensionCommand(String command, Object arg)非標準コマンド(または新しいバージョンの標準コマンド)を実行します。static ExecutionControlgenerate(ExecutionEnv env, String spec)プロバイダを検索し、ExecutionControlインスタンスを作成して返します。static ExecutionControlgenerate(ExecutionEnv env, String name, Map<String,String> parameters)プロバイダを検索し、ExecutionControlインスタンスを作成して返します。Stringinvoke(String className, String methodName)指定されたラッパー・クラスでメソッドを呼び出して、実行可能スニペットを呼び出します。voidload(ExecutionControl.ClassBytecodes[] cbcs)新しいクラスのロードを試行します。voidredefine(ExecutionControl.ClassBytecodes[] cbcs)以前にロードされたクラスを再定義しようとします。voidstop()実行中の呼出しを中断します。StringvarValue(String className, String varName)変数の値を返します。
-
-
-
メソッドの詳細
-
load
void load(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
新しいクラスのロードを試行します。- パラメータ:
cbcs- ロードするクラス名およびバイトコード- 例外:
ExecutionControl.ClassInstallException- クラスのロード中に例外が発生しました。一部またはすべてがロードされませんでしたExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しました
-
redefine
void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException
以前にロードされたクラスを再定義しようとします。- パラメータ:
cbcs- 再定義するクラス名およびバイトコード- 例外:
ExecutionControl.ClassInstallException- クラスを再定義中に例外が発生しました。一部またはすべてが再定義されませんでしたExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しました
-
invoke
String invoke(String className, String methodName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
指定されたラッパー・クラスでメソッドを呼び出して、実行可能スニペットを呼び出します。 このメソッドには引数がなく、Stringを返す必要があります。- パラメータ:
className- メソッドを呼び出すクラスmethodName- 起動するメソッドの名前- 戻り値:
- 実行の結果、または結果がない場合はnull
- 例外:
ExecutionControl.UserException- 呼出しでユーザー例外が発生したExecutionControl.ResolutionException- 呼出しが未解決スニペットを直接または間接的に呼び出そうとしましたExecutionControl.StoppedException-invoke()がstop()によって取り消された場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.RunException
-
varValue
String varValue(String className, String varName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
変数の値を返します。- パラメータ:
className- 変数のラッパー・クラスの名前varName- 変数の名前- 戻り値:
- 変数の値
- 例外:
ExecutionControl.UserException- ユーザー例外が発生した値を書式設定しますExecutionControl.ResolutionException- 未解決のスニペットを直接または間接的に呼び出そうとした値のフォーマットExecutionControl.StoppedException- 値のフォーマットがstop()によって取り消された場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.RunException
-
addToClasspath
void addToClasspath(String path) throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
実行クラス・パスにパスを追加します。- パラメータ:
path- 追加するパス- 例外:
ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しました
-
stop
void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
実行中の呼出しを中断します。- 例外:
ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しました
-
extensionCommand
Object extensionCommand(String command, Object arg) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException
非標準コマンド(または新しいバージョンの標準コマンド)を実行します。- パラメータ:
command- 非標準コマンドarg- コマンド引数- 戻り値:
- コマンドは値を返します
- 例外:
ExecutionControl.UserException- コマンドでユーザー例外が発生したExecutionControl.ResolutionException- 未解決スニペットを直接または間接的に呼び出そうとしたコマンドExecutionControl.StoppedException- コマンドがstop()によって取り消された場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.RunException
-
close
void close()
この実行エンジンを停止します。 実装では、この実行エンジンによって保持されているすべてのリソースを解放する必要があります。このインタフェースでのメソッドの呼出しは、クローズ後に実行しないでください。
- 定義:
close、インタフェースAutoCloseable
-
generate
static ExecutionControl generate(ExecutionEnv env, String name, Map<String,String> parameters) throws Throwable
プロバイダを検索し、ExecutionControlインスタンスを作成して返します。- パラメータ:
env- 実行環境(JShellで提供)name- プロバイダの名前parameters- パラメータ・マップ。- 戻り値:
- 実行エンジン
- 例外:
Throwable- 実行エンジンの検索または作成中に発生した例外。IllegalArgumentException- 指定されたnameおよびparametersを持つExecutionControlProviderがない場合。
-
generate
static ExecutionControl generate(ExecutionEnv env, String spec) throws Throwable
プロバイダを検索し、ExecutionControlインスタンスを作成して返します。- パラメータ:
env- 実行環境(JShellで提供)spec-ExecutionControl仕様。このパッケージ・ドキュメントのドキュメントに記載されています。- 戻り値:
- 実行エンジン
- 例外:
Throwable- 実行エンジンの検索または作成中に発生した例外。IllegalArgumentException- 指定されたnameおよびparametersを持つExecutionControlProviderがない場合。IllegalArgumentException-specの形式が正しくない場合
-
-