- 含まれているクラス:
- JShell
public static class JShell.Builder extends Object
JShellインスタンスのビルダー。 このクラスのsetterメソッドを使用して、JShellのカスタム・インスタンスを作成します。 0以上の後に、build()メソッドを使用してJShellインスタンスを作成します。 これらはすべて連鎖することができます。 たとえば、リモート出力とエラー・ストリームを設定するには:
JShell myShell =
JShell.builder()
.out(myOutStream)
.err(myErrStream)
.build();
特別なセット・アップが必要ない場合は、JShell.builder().build()またはショートカットと同等のJShell.create()を使用してください。-
メソッドのサマリー
修飾子と型 メソッド 説明 JShellbuild()JShell状態エンジンを構築します。JShell.BuildercompilerOptions(String... options)コンパイラ・オプションを追加します。JShell.Buildererr(PrintStream err)実行中の評価(それはSystem.errです)のエラー出力を設定します。JShell.BuilderexecutionEngine(String executionControlSpec)カスタム・エンジンを実行用に設定します。JShell.BuilderexecutionEngine(ExecutionControlProvider executionControlProvider, Map<String,String> executionControlParameters)カスタム・エンジンを実行用に設定します。JShell.BuilderfileManager(Function<StandardJavaFileManager,StandardJavaFileManager> mapping)コンパイルとソース解析で使用するようにFileManagerを構成します。JShell.BuilderidGenerator(BiFunction<Snippet,Integer,String> generator)スニペットの識別名のジェネレータを設定します。JShell.Builderin(InputStream in)実行中の評価(それはSystem.inです)の入力を設定します。JShell.Builderout(PrintStream out)実行中の評価(それはSystem.outです)の出力を設定します。JShell.BuilderremoteVMOptions(String... options)VMを起動するための追加のVMオプションを設定します。JShell.BuildertempVariableNameGenerator(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インスタンスを作成できなかった場合。
-