- 含まれているクラス:
- JShell
JShell
インスタンスのビルダー。 このクラスのsetterメソッドを使用して、JShell
のカスタム・インスタンスを作成します。 0以上の後に、build()
メソッドを使用してJShell
インスタンスを作成します。 これらはすべて連鎖することができます。 たとえば、リモート出力とエラー・ストリームを設定するには:
JShell myShell =
JShell.builder()
.out(myOutStream)
.err(myErrStream)
.build();
特別なセット・アップが必要ない場合は、JShell.builder().build()
またはショートカットと同等のJShell.create()
を使用してください。-
メソッドのサマリー
修飾子と型メソッド説明build()
JShell状態エンジンを構築します。compilerOptions(String... options)
コンパイラ・オプションを追加します。err(PrintStream err)
実行中の評価(それはSystem.err
です)のエラー出力を設定します。executionEngine(String executionControlSpec)
カスタム・エンジンを実行用に設定します。executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)
カスタム・エンジンを実行用に設定します。コンパイルとソース解析で使用するようにFileManager
を構成します。idGenerator(BiFunction<Snippet,Integer,String> generator)
スニペットの識別名のジェネレータを設定します。in(InputStream in)
実行中の評価(それはSystem.in
です)の入力を設定します。out(PrintStream out)
実行中の評価(それはSystem.out
です)の出力を設定します。remoteVMOptions(String... options)
VMを起動するための追加のVMオプションを設定します。tempVariableNameGenerator(Supplier<String> generator)
Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
のVarSnippet
の一時変数名のジェネレータを設定します。
-
メソッドの詳細
-
in
public JShell.Builder in(InputStream in)実行中の評価(それはSystem.in
です)の入力を設定します。 ノート: スニペットやその他のユーザー入力にSystem.in
を使用するアプリケーションは、リモート・プロセスの入力ストリームとしてSystem.in
を使用できません。InputStream
のread
メソッドは、ユーザーが入力を取消したことを通知するためにInterruptedIOException
をスローする可能性があります。 現在実行中のスニペットは自動的にstopped
になります。これが設定されていない場合のデフォルトは、空の入力ストリームを提供することです--
new ByteArrayInputStream(new byte[0])
。- パラメータ:
in
- リモート実行プロセスでSystem.in
にチャネルされるInputStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
out
public JShell.Builder out(PrintStream out)実行中の評価(それはSystem.out
です)の出力を設定します。 制御プロセスとリモート・プロセスはSystem.out
を共有できます。これが設定されていない場合のデフォルトは、
System.out
です。- パラメータ:
out
- リモート実行プロセスでSystem.out
にチャネルされるPrintStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
err
public JShell.Builder err(PrintStream err)実行中の評価(それはSystem.err
です)のエラー出力を設定します。 制御プロセスとリモート・プロセスはSystem.err
を共有できます。これが設定されていない場合のデフォルトは、
System.err
です。- パラメータ:
err
- リモート実行プロセスでSystem.err
にチャネルされるPrintStream
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
tempVariableNameGenerator
public JShell.Builder tempVariableNameGenerator(Supplier<String> generator)Snippet.SubKind.TEMP_VAR_EXPRESSION_SUBKIND
のVarSnippet
の一時変数名のジェネレータを設定します。明示的に必要がない限り、このメソッドを使用しないでください。
ジェネレータは、新しく作成されたVarSnippetインスタンスに使用されます。 変数の名前は
PersistentSnippet.name()
で問合せされます。コールバックはスニペットの処理中に送信されますが、JShellの状態は安定していません。 コールバックから
JShell
インスタンスの呼び出しを行うことはできません。生成された名前は、アクティブなスニペット内で一意である必要があります。
デフォルト動作(これが設定されていないか、
generator
がnullの場合)は、プレフィクス・ドル記号("$")を持つ連続番号として名前を生成することです。- パラメータ:
generator
-Supplier
は一時変数名文字列またはnull
を生成- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
idGenerator
public JShell.Builder idGenerator(BiFunction<Snippet,Integer,String> generator)スニペットの識別名のジェネレータを設定します。明示的に必要がない限り、このメソッドを使用しないでください。
ジェネレータは新しく作成されたスニペット・インスタンスに使用されます。 識別名(id)は
Snippet.id()
でアクセスされ、StackTraceElement.getFileName()
でEvalException
とUnresolvedReferenceException
にアクセスできます。ジェネレータへの入力は、
Snippet
と整数です。 整数は2つのスニペットで同じものになります。スニペットは互いに上書きしますが、それ以外は一意です。コールバックはスニペットの処理中に送信され、スニペットと状態は全体として安定しません。 システム状態を変更するための呼び出しは行われません。(スニペット状態を含む)を実行する必要があります。
Snippet.id()
を除き、Snippetの問合せを作成することができます。JShell
インスタンスに対するコールは、status(Snippet)
以外のコールバックからは実行できません。デフォルトの動作(これが設定されていないか、
generator
がnullの場合)は、idを文字列に変換された整数として生成することです。- パラメータ:
generator
- idストリングまたはnull
を生成するBiFunction
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
remoteVMOptions
public JShell.Builder remoteVMOptions(String... options)VMを起動するための追加のVMオプションを設定します。- パラメータ:
options
- リモートVMのオプション- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
compilerOptions
public JShell.Builder compilerOptions(String... options)コンパイラ・オプションを追加します。 これらの追加オプションは、構文解析、解析、およびコンパイラへのコード生成呼び出しで使用されます。 結果を妨げるオプションはサポートされておらず、JShell操作に未定義の影響を与えます。- パラメータ:
options
- コンパイラ呼び出しの追加オプション- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
executionEngine
public JShell.Builder executionEngine(String executionControlSpec)カスタム・エンジンを実行用に設定します。 スニペットの実行は、指定された実行制御仕様によって選択されたExecutionControl
インスタンスによって提供されます。 多くの場合、これらのオーバーロードされたexecutionEngine
ビルダー・メソッドの1つを使用します。- パラメータ:
executionControlSpec
- 実行制御仕様は、jdk.jshell.spi
パッケージのドキュメントに記載されています。- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
executionEngine
public JShell.Builder executionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)カスタム・エンジンを実行用に設定します。 スニペットの実行は、指定されたExecutionControl
インスタンスによって提供されます。 多くの場合、これらのオーバーロードされたexecutionEngine
ビルダー・メソッドの1つを使用します。- パラメータ:
executionControlProvider
- 実行エンジンを提供するプロバイダexecutionControlParameters
- プロバイダへのパラメータ、またはデフォルト・パラメータのnull
- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
fileManager
public JShell.Builder fileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)コンパイルとソース解析で使用するようにFileManager
を構成します。 設定されていない場合、またはnullが渡された場合、コンパイラ標準ファイル・マネージャは(アイデンティティ・マッピング)で使用されます。 コンパイラの通常のファイル処理をオーバーライドする必要のある特別なアプリケーションでの使用。 詳細については、ファイル・マネージャAPIを参照してください。 ファイル・マネージャの入力により、転送ファイル・マネージャが有効になります。必要がない場合は、着信ファイル・マネージャを無視することができます(コンスタント関数)。- パラメータ:
mapping
- コンパイラ標準ファイル・マネージャを指定した関数は、使用するファイル・マネージャを返します- 戻り値:
Builder
インスタンス(チェーンの初期化に使用)
-
build
public JShell build() throws IllegalStateExceptionJShell状態エンジンを構築します。 これはすべてのJShell機能のエントリ・ポイントです。 これにより、実行のためのリモート・プロセスが作成されます。 したがって、返されたインスタンスを閉じることが重要です。- 戻り値:
- 状態エンジン
- 例外:
IllegalStateException
-JShell
インスタンスを作成できなかった場合。
-