モジュール jdk.jshell
パッケージ jdk.jshell

クラスJShell.Builder

  • 含まれているクラス:
    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()を使用してください。
    • メソッドの詳細

      • in

        public JShell.Builder in​(InputStream in)
        実行中の評価(それはSystem.inです)の入力を設定します。 ノート: スニペットやその他のユーザー入力にSystem.inを使用するアプリケーションは、リモート・プロセスの入力ストリームとしてSystem.inを使用できません。

        InputStreamreadメソッドは、ユーザーが入力を取消したことを通知するために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_SUBKINDVarSnippetの一時変数名のジェネレータを設定します。

        明示的に必要がない限り、このメソッドを使用しないでください。

        ジェネレータは、新しく作成された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()EvalExceptionUnresolvedReferenceExceptionにアクセスできます。

        ジェネレータへの入力は、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 IllegalStateException
        JShell状態エンジンを構築します。 これはすべてのJShell機能のエントリ・ポイントです。 これにより、実行のためのリモート・プロセスが作成されます。 したがって、返されたインスタンスを閉じることが重要です。
        戻り値:
        状態エンジン
        例外:
        IllegalStateException - JShellインスタンスを作成できなかった場合。