java.lang.Object
jdk.jshell.execution.DirectExecutionControl
- すべての実装されたインタフェース:
AutoCloseable,ExecutionControl
- 直系の既知のサブクラス:
LocalExecutionControl,RemoteExecutionControl
public class DirectExecutionControl extends Object implements ExecutionControl
現在のプロセスで実行される
ExecutionControl実装。 直接、またはUtil.forwardExecutionControl(ExecutionControl, java.io.ObjectInput, java.io.ObjectOutput)を持つチャネル上で使用できます。 - 導入されたバージョン:
- 9
-
ネストされたクラスのサマリー
インタフェースjdk.jshell.spi.ExecutionControlで宣言されたネストされたクラス/インタフェース
ExecutionControl.ClassBytecodes, ExecutionControl.ClassInstallException, ExecutionControl.EngineTerminationException, ExecutionControl.ExecutionControlException, ExecutionControl.InternalException, ExecutionControl.NotImplementedException, ExecutionControl.ResolutionException, ExecutionControl.RunException, ExecutionControl.StoppedException, ExecutionControl.UserException -
コンストラクタのサマリー
コンストラクタコンストラクタ説明デフォルトのクラス・ロードを使用してインスタンスを作成します。DirectExecutionControl(LoaderDelegate loaderDelegate) インスタンスを作成し、指定した委任にローダー操作を委任します。 -
メソッドのサマリー
修飾子と型メソッド説明voidaddToClasspath(String cp) 実行クラス・パスにパスを追加します。protected voidクラスが再定義されたことを通知します。protected voidユーザー・コードにエントリをマークします。protected voidユーザー・コードからの出発をマークします。voidclose()この実行エンジンを停止します。extensionCommand(String command, Object arg) 非標準コマンド(新しいバージョンの標準コマンド)を実行します。protected Class<?> 指定されたバイナリ名を持つクラスを探します。protected String指定された"doit-method"(パラメータのない静的メソッド)を呼び出します。指定されたラッパー・クラスのメソッドをコールして、実行可能スニペットを起動します。voidload(ExecutionControl.ClassBytecodes[] cbcs) 新しいクラスをロードしようとします。void以前にロードされたクラスの再定義を試みます。voidstop()実行中の呼出しを中断します。protected Stringユーザー・コードの受信例外をExecutionControl.ExecutionControlExceptionのサブタイプのインスタンスに変換し、変換された例外をスローします。protected Stringエージェント・コード内の受信例外をExecutionControl.ExecutionControlExceptionのサブタイプのインスタンスに変換し、変換された例外をスローします。protected static StringvalueString(Object value) Objectの値をExecutionControl.invoke(String, String)またはExecutionControl.varValue(String, String)からStringに変換します。変数の値を返します。
-
コンストラクタの詳細
-
DirectExecutionControl
public DirectExecutionControl(LoaderDelegate loaderDelegate) インスタンスを作成し、指定した委任にローダー操作を委任します。- パラメータ:
loaderDelegate- デリゲートがロード・クラスを処理
-
DirectExecutionControl
public DirectExecutionControl()デフォルトのクラス・ロードを使用してインスタンスを作成します。
-
-
メソッドの詳細
-
load
public void load(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException インタフェース:ExecutionControlからコピーされた説明新しいクラスをロードしようとします。- 定義:
- インタフェース
ExecutionControl内のload - パラメータ:
cbcs- ロードするクラス名とバイトコード- 例外:
ExecutionControl.ClassInstallException- クラスのロード中に例外が発生しました。一部またはすべてがロードされていませんExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しました
-
redefine
public void redefine(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.ClassInstallException, ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException インタフェース:ExecutionControlからコピーされた説明以前にロードされたクラスの再定義を試みます。- 定義:
- インタフェース
ExecutionControl内のredefine - パラメータ:
cbcs- 再定義するクラス名とバイトコード- 例外:
ExecutionControl.ClassInstallException- クラスの再定義中に例外が発生しました。一部またはすべてが再定義されませんでしたExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しました
-
classesRedefined
protected void classesRedefined(ExecutionControl.ClassBytecodes[] cbcs) throws ExecutionControl.NotImplementedException, ExecutionControl.EngineTerminationException クラスが再定義されたことを通知します。- パラメータ:
cbcs- 再定義するクラス名とバイトコード- 例外:
ExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しました
-
invoke
public String invoke(String className, String methodName) throws ExecutionControl.RunException, ExecutionControl.InternalException, ExecutionControl.EngineTerminationException インタフェース:ExecutionControlからコピーされた説明指定されたラッパー・クラスのメソッドをコールして、実行可能スニペットを起動します。 メソッドには引数がなく、Stringを返す必要があります。- 定義:
- インタフェース
ExecutionControl内のinvoke - パラメータ:
className- メソッドを呼び出すべきクラスmethodName- 呼び出すメソッドの名前- 戻り値:
- 実行の結果。結果がない場合はnull
- 例外:
ExecutionControl.UserException- 呼び出しによってユーザー例外が発生しましたExecutionControl.ResolutionException- 呼び出しは、直接または間接的に未解決のスニペットを呼び出そうとしましたExecutionControl.StoppedException-invoke()がExecutionControl.stop()によって取り消された場合ExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.RunException
-
varValue
public String varValue(String className, String varName) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException インタフェース:ExecutionControlからコピーされた説明変数の値を返します。- 定義:
- インタフェース
ExecutionControl内のvarValue - パラメータ:
className- 変数のラッパー・クラスの名前varName- 変数の名前- 戻り値:
- 変数の値
- 例外:
ExecutionControl.UserException- 値の書式設定によってユーザー例外が発生しましたExecutionControl.ResolutionException- 値をフォーマットすると、未解決のスニペットを直接的または間接的に呼び出そうとしましたExecutionControl.StoppedException- 値の書式設定がExecutionControl.stop()によって取消された場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.RunException
-
addToClasspath
public void addToClasspath(String cp) throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException インタフェース:ExecutionControlからコピーされた説明実行クラス・パスにパスを追加します。- 定義:
- インタフェース
ExecutionControl内のaddToClasspath - パラメータ:
cp- 追加するパス- 例外:
ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しました
-
stop
public void stop() throws ExecutionControl.EngineTerminationException, ExecutionControl.InternalException実行中の呼出しを中断します。サポートされていません。
- 定義:
- インタフェース
ExecutionControl内のstop - 例外:
ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.InternalException- 内部問題が発生しました
-
extensionCommand
public Object extensionCommand(String command, Object arg) throws ExecutionControl.RunException, ExecutionControl.EngineTerminationException, ExecutionControl.InternalException インタフェース:ExecutionControlからコピーされた説明非標準コマンド(新しいバージョンの標準コマンド)を実行します。- 定義:
- インタフェース
ExecutionControl内のextensionCommand - パラメータ:
command- 非標準コマンドarg- コマンドの引数- 戻り値:
- コマンドは値を返します
- 例外:
ExecutionControl.UserException- コマンドはユーザー例外を発生させましたExecutionControl.ResolutionException- コマンドは、直接または間接的に未解決のスニペットを呼び出そうとしましたExecutionControl.StoppedException- コマンドがExecutionControl.stop()によって取り消された場合ExecutionControl.EngineTerminationException- 実行エンジンが終了しましたExecutionControl.NotImplementedException- 実装されていない場合ExecutionControl.InternalException- 内部問題が発生しましたExecutionControl.RunException
-
close
public void close()インタフェース:ExecutionControlからコピーされた説明この実行エンジンを停止します。 実装では、この実行エンジンによって保持されているすべてのリソースを解放する必要があります。このインタフェース上のメソッドへのコールは、クローズ後に実行しないでください。
- 定義:
close、インタフェースAutoCloseable- 定義:
- インタフェース
ExecutionControl内のclose
-
findClass
protected Class<?> findClass(String name) throws ClassNotFoundException 指定されたバイナリ名を持つクラスを探します。- パラメータ:
name- クラスのバイナリ名- 戻り値:
- クラス・オブジェクト
- 例外:
ClassNotFoundException- クラスが見つからなかった場合
-
invoke
指定された"doit-method"(パラメータのない静的メソッド)を呼び出します。 このクラスのinvoke(java.lang.String, java.lang.String)はこれを呼び出して呼び出します。- パラメータ:
doitMethod- 呼び出すメソッド- 戻り値:
- 値またはnull
- 例外:
Exception-Method.invoke(Object, Object...)またはExecutionControl.ExecutionControlExceptionによってパススルーされる例外。
-
valueString
Objectの値をExecutionControl.invoke(String, String)またはExecutionControl.varValue(String, String)からStringに変換します。- パラメータ:
value- 変換する値- 戻り値:
String表現
-
throwConvertedInvocationException
protected String throwConvertedInvocationException(Throwable cause) throws ExecutionControl.RunException, ExecutionControl.InternalException ユーザー・コードの受信例外をExecutionControl.ExecutionControlExceptionのサブタイプのインスタンスに変換し、変換された例外をスローします。- パラメータ:
cause- 変換する例外- 戻り値:
- いつも通りに戻ることはありません
- 例外:
ExecutionControl.RunException- 通常の例外発生の場合ExecutionControl.InternalException- 内部問題
-
throwConvertedOtherException
protected String throwConvertedOtherException(Throwable ex) throws ExecutionControl.RunException, ExecutionControl.InternalException エージェント・コード内の受信例外をExecutionControl.ExecutionControlExceptionのサブタイプのインスタンスに変換し、変換された例外をスローします。- パラメータ:
ex- 変換する例外- 戻り値:
- いつも通りに戻ることはありません
- 例外:
ExecutionControl.RunException- 通常の例外発生の場合ExecutionControl.InternalException- 内部問題
-
clientCodeEnter
protected void clientCodeEnter() throws ExecutionControl.InternalExceptionユーザー・コードにエントリをマークします。- 例外:
ExecutionControl.InternalException- 予期しない失敗事例で
-
clientCodeLeave
protected void clientCodeLeave() throws ExecutionControl.InternalExceptionユーザー・コードからの出発をマークします。- 例外:
ExecutionControl.InternalException- 予期しない失敗事例で
-