名前
jshell - Javaプログラミング言語の宣言、文および式をread-eval-printループ (REPL)で対話形式で評価
シノプシス
jshell [options] [load-files]
- options
- コマンド行オプションをスペースで区切ったものです。 「jshellのオプション」を参照してください。
- load-files
-
ツールの起動時に実行する1つまたは複数のスクリプト。 スクリプトには、有効なコード・スニペットまたはJShellコマンドを含めることができます。
スクリプトは、ローカル・ファイルまたは次の定義済みのスクリプトのいずれかになります:
DEFAULT- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE- すべてのJava SEパッケージをインポートします。
PRINTING-
print、printlnおよびprintfを、ツール内で使用するjshellメソッドとして定義します。 TOOLING-
jshellツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac、jarおよびその他のメソッドを定義します。
複数のスクリプトの場合は、スペースを使用して名前を区切ります。 スクリプトは、コマンド行で入力された順に実行されます。 コマンドライン・スクリプトは、起動スクリプトの後に実行されます。 JShellの起動後にスクリプトを実行するには、
/openコマンドを使用します。標準入力からの入力を受け入れ、対話型I/O,を抑制するには、load-filesにハイフン(-)を入力します。 このオプションは、パイプ・チェーンで
jshellツールを使用できるようにします。
説明
JShellは、Javaプログラミング言語の宣言、ステートメント、および式をインタラクティブに評価し、言語の学習、不慣れなコードやAPIの探索、複雑なコードのプロトタイプ作成を容易にする方法を提供します。 Javaステートメント、変数定義、メソッド定義、クラス定義、インポート・ステートメント、および式が受け入れられます。 入力されたコードのビットはスニペットと呼ばれます。
入力されたスニペットは、評価されてフィードバックが提示されます。 フィードバックは、入力されたスニペットと選択されたフィードバック・モードに応じて、結果とアクションの説明から何も変化しません。 エラーは、フィードバック・モードに関係なく記述されます。 ツールの学習時には、冗長モードで起動して最大量のフィードバックを取得します。
コマンドライン・オプションは、JShellの起動時に初期環境を構成するために使用できます。 JShellでは、必要に応じて環境を変更するためのコマンドが用意されています。
既存のスニペットは、JShellセッションを初期化するために、あるいはセッション内であればいつでもファイルからロードできます。 セッション内でスニペットを変更して、さまざまなバリエーションを試して修正することができます。 後で使用するためにスニペットを保持するには、スニペットをファイルに保存します。
jshellのオプション
--add-exportsmodule/package- 定義モジュールからエクスポートされたとみなされるパッケージを指定します。
--add-modulesmodule[,module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
-Cflag- コンパイラに渡すフラグを提供します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
--class-pathpath-
クラス・ファイルを検索するために検索されるディレクトリとアーカイブを指定します。 このオプションは、
CLASSPATH環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合、セミコロン(;)を使用してアイテムを区切ります。 --enable-preview- コードがこのリリースのプレビュー機能に依存できるようにします。
--executionspecification- 代替実行エンジンを指定します。ここで、specificationはExecutionControl仕様です。 仕様部の構文については、jdk.jshell.spiパッケージのドキュメントを参照してください。
--feedbackmode-
入力内容に応じて提供されるフィードバックの初期レベルを設定します。 初期レベルは、
/set feedbackmodeコマンドを使用してセッション内でオーバーライドできます。 デフォルトはnormalです。次の値はmodeに有効です:
verbose- エントリの詳細なフィードバックを提供します。 アクションの結果の後に、実行されたアクションに関する追加情報が表示されます。 次のプロンプトはフィードバックから空白行で区切られています。
normal- 平均的なフィードバック量を提供します。 次のプロンプトはフィードバックから空白行で区切られています。
concise- 最小限のフィードバックを提供します。 次のプロンプトは、コード・スニペットまたはフィードバックの直後に表示されます。
silent- フィードバックを提供しません。 次のプロンプトがコード・スニペットの直後に続きます。
- custom
-
モードがどのように定義されているかに基づいてカスタム・フィード・バックを提供します。 カスタム・フィードバック・モードは、
/set modeコマンドを使用してJShell内に作成されます。
--helpまたは-hあるいは-?- 標準オプションのサマリーを出力し、ツールを終了します。
--help-extraまたは-X- 非標準オプションのサマリーを出力し、ツールを終了します。 非標準のオプションは予告なしに変更されることがあります。
-Jflag- ランタイム・システムに渡すフラグを提供します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
--module-pathmodulepath- アプリケーション・モジュールの検索場所を指定します。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合、セミコロン(;)を使用してアイテムを区切ります。
--no-startup-
JShellの起動時に起動スクリプトが実行されないようにします。 このオプションを使用すると、JShellの起動時にコマンドラインで入力したスクリプトのみを実行したり、スクリプトが入力されていない場合には事前に情報がなくてもJShellを起動できます。
--startupオプションが使用されている場合、このオプションは使用できません。 -q-
フィードバック・モードを
conciseに設定します。これは、--feedback conciseと入力した場合と同じです。 -Rflag- リモート・ランタイム・システムに渡すフラグを提供します。 複数のフラグを渡すには、渡すフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
-s-
フィードバック・モードを
silentに設定します。これは、--feedback silentと入力した場合と同じです。 --show-version- バージョン情報を印刷してツールに入ります。
--startupfile-
このセッションのデフォルトの起動スクリプトを上書きします。 スクリプトには、有効なコード・スニペットまたはコマンドを含めることができます。
スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
DEFAULT- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE- すべてのJava SEパッケージをインポートします。
PRINTING-
print、printlnおよびprintfを、ツール内で使用するjshellメソッドとして定義します。 TOOLING-
jshellツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac、jarおよびその他のメソッドを定義します。
複数のスクリプトの場合は、各スクリプトに対してこのオプションのインスタンスを個別に指定します。 起動スクリプトは、JShellが最初に起動されたとき、およびセッションが
/reset、/reloadまたは/envコマンドで再起動されたときに実行されます。 起動スクリプトは、コマンド行で入力された順に実行されます。--no-startupオプションが使用されている場合、このオプションは使用できません。 -v-
フィードバック・モードを
verboseに設定します。これは、--feedback verboseと入力した場合と同じです。 --version- バージョン情報を印刷してツールを終了します。
jshellコマンド
jshellツール内では、コマンドを使用して環境を変更し、コード・スニペットを管理します。
/drop{name|id|startID-endID} [{name|id|startID-endID}...]-
名前、IDまたはIDの範囲で識別されるスニペットを削除して、それらを非アクティブにします。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを表示します。 /edit[option]-
エディタを開きます。 オプションを入力しないと、アクティブなスニペットとともにエディタが開きます。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] -
名前、IDまたはIDの範囲で識別されるスニペットを使用してエディタを開きます。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを表示します。 -all- 起動スニペットや失敗したスニペット、上書きされたスニペット、削除されたスニペットを含むすべてのスニペットでエディタを開きます。
-start- JShellの起動時に評価された起動スニペットでエディタを開きます。
編集モードを終了するには、エディタ・ウィンドウを閉じるか、エディタの設定時に
-waitオプションが使用された場合に指定されたプロンプトに応答します。/set editorコマンドを使用して、使用するエディタを指定します。 エディタが設定されていない場合、次の環境変数が順にチェックされます:JSHELLEDITOR、VISUALおよびEDITOR。 エディタがJShellで設定されておらず、エディタ環境変数がいずれも設定されていない場合、デフォルトの簡易エディタが使用されます。 - {name|id|startID
/env[options]-
環境設定を表示するか、環境設定を更新してセッションを再開します。 オプションを入力しないと、現在の環境設定が表示されます。 1つまたは複数のオプションを入力すると、セッションは次のように再開されます:
指定されたオプションで環境設定を更新します。
実行状態をリセットします。
起動スクリプトを実行します。
入力した順序で履歴を静かに再生します。 履歴には、
jshellプロンプトに入力されたすべての有効なスニペットまたは/dropコマンドが、コマンドラインで入力されたスクリプト、または/openコマンドで入力されたスクリプトに含まれています。
コマンドラインに入力された環境設定、または以前の
/reset、/envまたは/reloadコマンドとともに指定された環境設定は、設定を上書きするoptionが入力されていないかぎり保持されます。有効なオプションは次のとおりです。
--add-modulesmodule[,module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exportssource-module/package=target-module[,target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-pathpath-
クラス・ファイルを検索するために検索されるディレクトリとアーカイブを指定します。 このオプションは、
CLASSPATH環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。 --module-pathmodulepath-
アプリケーション・モジュールの検索場所を指定します。 LinuxおよびmacOSの場合は、コロン(
:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。
/exit[integer-expression-snippet]- ツールを終了します。 スニペットが入力されていない場合、終了ステータスはゼロになります。 スニペットが入力されており、スニペットの結果が整数である場合、その結果が終了ステータスとして使用されます。 エラーが発生した場合またはスニペットの結果が整数ではない場合、エラーが表示され、ツールはアクティブのままになります。
/history- このセッションで入力した内容を表示します。
/help[command|subject]-
コマンドとサブジェクトに関する情報を表示します。 オプションを入力しないと、すべてのコマンドの情報のサマリーと使用可能なサブジェクトのリストが表示されます。 有効なコマンドが提供されると、そのコマンドの拡張情報が表示されます。 有効な件名が入力されると、その件名に関する情報が表示されます。
subjectの次の値は有効です:
context- 環境を構成するために使用できるオプションについて説明します。
intro- ツールの概要を説明します。
shortcuts- コマンドとスニペットを完了するためのキーストロークについて説明します。 入力のショートカットを参照してください。
/imports- JShellの起動時にコマンドラインで入力された起動スクリプトおよびスクリプトからのアクティブなインポートを含む、現在アクティブなインポートを表示します。
/list[option]-
スニペットとそのIDのリストを表示します。 オプションを入力しなかった場合、すべてのアクティブなスニペットが表示されますが、起動スニペットは表示されません。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] - 名前、IDまたはIDの範囲で識別されたスニペットを表示します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
-all-
失敗した、上書きされた、または破棄された起動スニペットとスニペットを含むすべてのスニペットを表示します。
sで始まるIDは起動スニペットです。eで始まるIDは、失敗したスニペットです。 -start- JShellの起動時に評価された起動スニペットを表示します。
- {name|id|startID
/methods[option]-
入力されたメソッドに関する情報を表示します。 オプションを入力しないと、すべてのアクティブなメソッドの名前、パラメータのタイプ、および戻りタイプが表示されます。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] -
名前、IDまたはIDの範囲で識別されたメソッドの情報を表示します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを表示します。 -all- JShellの起動時に追加されたメソッドや、失敗したメソッド、上書きされたメソッド、削除されたメソッドなど、すべてのメソッドの情報を表示します。
-start- JShellの起動時に追加された起動メソッドの情報を表示します。
- {name|id|startID
/openfile-
指定されたスクリプトを開き、スニペットをツールに読み込みます。 スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
DEFAULT- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE- すべてのJava SEパッケージをインポートします。
PRINTING-
print、printlnおよびprintfを、ツール内で使用するjshellメソッドとして定義します。 TOOLING-
jshellツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac、jarおよびその他のメソッドを定義します。
/reload[options]-
次のようにセッションを再開します:
提供されているオプションがあれば、環境設定を更新します。
実行状態をリセットします。
起動スクリプトを実行します。
入力された順序で履歴を再生します。 履歴には、
jshellプロンプトに入力されたすべての有効なスニペットまたは/dropコマンドが、コマンドラインで入力されたスクリプト、または/openコマンドで入力されたスクリプトに含まれています。
コマンドラインに入力された環境設定、または以前の
/reset、/envまたは/reloadコマンドとともに指定された環境設定は、設定を上書きするoptionが入力されていないかぎり保持されます。有効なオプションは次のとおりです。
--add-modulesmodule[,module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exportssource-module/package=target-module[,target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-pathpath-
クラス・ファイルを検索するために検索されるディレクトリとアーカイブを指定します。 このオプションは、
CLASSPATH環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。 --module-pathmodulepath-
アプリケーション・モジュールの検索場所を指定します。 LinuxおよびmacOSの場合は、コロン(
:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。 -quiet- 有効な履歴を表示せずに再生します。 エラーが表示されます。
-restore-
以前の実行ツールの開始時の状態に環境をリセットしたり、
/reset、/reload、または/envコマンドが前回の実行で最後に実行されたときの状態にリセットします。 その時点から有効な履歴が再生されます。 以前のJShellセッションをリストアするには、このオプションを使用します。
/reset[options]-
入力されたすべてのスニペットを破棄し、次のようにセッションを再開します:
提供されているオプションがあれば、環境設定を更新します。
実行状態をリセットします。
起動スクリプトを実行します。
履歴は再生されません。 入力されたコードはすべて失われます。
コマンドラインに入力された環境設定、または以前の
/reset、/envまたは/reloadコマンドとともに指定された環境設定は、設定を上書きするoptionが入力されていないかぎり保持されます。有効なオプションは次のとおりです。
--add-modulesmodule[,module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exportssource-module/package=target-module[,target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-pathpath-
クラス・ファイルを検索するために検索されるディレクトリとアーカイブを指定します。 このオプションは、
CLASSPATH環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。 --module-pathmodulepath-
アプリケーション・モジュールの検索場所を指定します。 LinuxおよびmacOSの場合は、コロン(
:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;)を使用します。
/save[options] file-
スニペットとコマンドを指定されたファイルに保存します。 オプションを入力しないと、アクティブなスニペットが保存されます。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] -
名前、IDまたはIDの範囲で識別されたスニペットおよびコマンドを保存します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを確認します。 -all- 上書きまたは失敗した起動スニペットおよびスニペットを含むすべてのスニペットを保存します。
-history- 現在のセッションで入力されたすべてのコマンドとスニペットのシーケンシャル履歴を保存します。
-start- 現在の起動設定を保存します。 起動スクリプトが指定されていない場合、空のファイルが保存されます。
- {name|id|startID
/set[setting]-
外部エディタ、起動構成、フィードバック・モードなどの構成情報を構成します。 このコマンドは、カスタマイズされたプロンプト、フォーマット、および切り捨て値を持つカスタム・フィード・バック・モードを作成するためにも使用されます。 設定が入力されていない場合、エディタ、起動設定、フィードバック・モードの現在の設定が表示されます。
次の値は
settingに有効です:editor[options] [command]-
/editコマンドの入力時に外部エディタを起動するために使用するコマンドを設定します。 このコマンドには、スペースで区切られたコマンド引数を含めることができます。 コマンドまたはオプションを入力しないと、現在の設定が表示されます。有効なオプションは次のとおりです。
-default- エディタをJShellで提供されるデフォルトのエディタに設定します。 このオプションは、エディタを起動するためのコマンドが入力されている場合は使用できません。
-delete-
セッションの開始時にエディタを有効に設定します。
-retainオプションとともに使用すると、保持されたエディタ設定が削除され、エディタは見つかった次の環境変数の最初のものに設定されます:JSHELLEDITOR、VISUAL、またはEDITOR。 エディタ環境変数が1つも設定されていない場合、このオプションはエディタをデフォルト・エディタに設定します。このオプションは、エディタを起動するためのコマンドが入力されている場合は使用できません。
-retain- エディタ設定をセッション間で保存します。 他のオプションやコマンドが入力されていない場合は、現在の設定が保存されます。
-wait- 編集が完了したときに指示するようにユーザーに指示します。 それ以外の場合は、エディタが終了するとJShellに制御が戻ります。 このオプションは、編集ウィンドウが既に存在する場合など、使用中のエディタがすぐに終了する場合に使用します。 このオプションは、エディタを開始するコマンドが入力された場合にのみ有効です。
feedback[mode]-
入力に応答するためのフィードバック・モードを設定します。 モードに入っていない場合、現在のモードが表示されます。
以下のモードが有効です:
concise,normal,silent,verbose、および/set modeコマンドで作成されたカスタム・モード。 formatmode field"format-string"selector-
入力にレスポンスして提供されるフィードバックのフォーマットを設定します。 モードが入力されていない場合、すべてのフィードバック・モードのすべてのフィールドの現在の書式が表示されます。 モードのみが入力されている場合、そのモードの現在のフォーマットが表示されます。 モードとフィールドのみが入力されている場合、そのフィールドの現在のフォーマットが表示されます。
書式を定義するには、次の引数が必要です:
- mode
-
応答形式が適用されるフィードバック・モードを指定します。
/set modeコマンドで作成されたカスタム・モードのみを変更できます。 - field
-
応答形式が適用されるコンテキスト固有のフィールドを指定します。 これらのフィールドについては、
/help /set formatコマンドを使用してJShellからアクセスするオンライン・ヘルプで説明します。 "format-string"-
指定されたフィールドおよびセレクタの応答形式として使用する文字列を指定します。 書式文字列の構造については、オンライン・ヘルプで説明します。このヘルプには、
/help /set formatコマンドを使用してJShellからアクセスします。 - selector
-
応答形式が適用されるコンテキストを指定します。 セレクタは、
/help /set formatコマンドを使用してJShellからアクセスするオンライン・ヘルプで説明されています。
mode[mode-name] [existing-mode] [options]-
モード名を指定してカスタム・フィード・バック・モードを作成します。 モード名を入力しないと、モード、プロンプト、フォーマット、切り捨ての設定など、すべてのモードの設定が表示されます。 既存のモードの名前が指定されている場合、既存のモードの設定は作成されているモードにコピーされます。
有効なオプションは次のとおりです。
-command|-quiet-
モードの使用時にコマンドについて表示されるフィードバックのレベルを指定します。 このオプションは、フィードバック・モードを作成するときに必要です。
-commandを使用して、コマンドの情報および検証のフィードバックを表示します。 エラー・メッセージなどのコマンドに不可欠なフィードバックのみを表示するには、-quietを使用します。 -delete-
このセッションの名前付きフィードバック・モードを削除します。 削除するモードの名前が必要です。 保持モードを完全に削除するには、このオプションとともに
-retainオプションを使用します。 事前定義済のモードは削除できません。 -retain- 指定したフィードバック・モードをセッションに保存します。 保持するモードの名前が必要です。
/set prompt、/set formatおよび/set truncationコマンドを使用して、新しいフィードバック・モードを構成します。新しいモードの使用を開始するには、
/set feedbackコマンドを使用します。 promptmode"prompt-string""continuation-prompt-string"-
JShell内での入力のプロンプトを設定します。 モードが入力されていない場合は、すべてのフィードバック・モードの現在のプロンプトが表示されます。 モードのみが入力されている場合、そのモードの現在のプロンプトが表示されます。
プロンプトを定義するには、次の引数が必要です:
- mode
-
プロンプトが適用されるフィードバック・モードを指定します。
/set modeコマンドで作成されたカスタム・モードのみを変更できます。 "prompt-string"- 入力の最初の行に対するプロンプトとして使用する文字列を指定します。
"continuation-prompt-string"- スニペットの完成に必要な追加の入力行を求めるプロンプトとして使用する文字列を指定します。
start[-retain] [file [file...]|option]-
次の
/reset、/reload、または/envコマンドの入力時に使用される起動スクリプトの名前を設定します。 2つ以上のスクリプトが入力された場合、スクリプトは入力された順序で実行されます。 スクリプトまたはオプションが入力されていない場合は、現在の起動設定が表示されます。スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
DEFAULT- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE- すべてのJava SEパッケージをインポートします。
PRINTING-
print、printlnおよびprintfを、ツール内で使用するjshellメソッドとして定義します。 TOOLING-
jshellツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac、jarおよびその他のメソッドを定義します。
有効なオプションは次のとおりです。
-default- 起動設定をデフォルト設定に設定します。
-none- 起動設定が使用されないことを指定します。
セッション間で開始設定を保存するには、
-retainオプションを使用します。 truncationmode length selector-
表示される値の最大長を設定します。 モードが入力されない場合、すべてのフィードバック・モードの現在の切り捨て値が表示されます。 モードだけを入力すると、そのモードの現在の切り捨て値が表示されます。
切り捨て値を定義するには、次の引数が必要です:
- mode
-
切捨て値が適用されるフィードバック・モードを指定します。
/set modeコマンドで作成されたカスタム・モードのみを変更できます。 - length
- 指定のセレクタの最大長として使用する符号なし整数を指定します。
- selector
-
切捨て値が適用されるコンテキストを指定します。 セレクタは、
/help /set truncationコマンドを使用してJShellからアクセスするオンライン・ヘルプで説明されています。
/types[option]-
入力されたクラス、インタフェース、および列挙型を表示します。 オプションを入力しないと、現在アクティブなすべてのクラス、インタフェース、および列挙型が表示されます。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] -
名前、IDまたはIDの範囲で識別されたクラス、インタフェースおよび列挙型の情報を表示します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを確認します。 -all- JShellの起動時に追加されたクラス、インタフェース、列挙型、クラスが失敗した、上書きされた、または破棄されたクラス、インタフェース、列挙型などの情報をすべて表示します。
-start- JShellの起動時に追加された起動クラス、インタフェース、および列挙型に関する情報を表示します。
- {name|id|startID
/vars[option]-
入力された変数の名前、タイプ、および値を表示します。 オプションを入力しないと、現在アクティブな変数がすべて表示されます。
有効なオプションは次のとおりです。
- {name|id|startID
-endID} [{name|id|startID-endID}...] -
名前、IDまたはIDの範囲で識別された変数の情報を表示します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。
/listコマンドを使用して、コード・スニペットのIDを確認します。 -all- JShellの起動時に追加された変数や、失敗した変数、上書きされた変数、削除された変数など、すべての変数の情報を表示します。
-start- JShellの起動時に追加された起動変数の情報を表示します。
- {name|id|startID
/?-
/helpコマンドと同じです。 /!- 最後のスニペットを再実行します。
/{name|id|startID-endID} [{name|id|startID-endID}...]-
ID、IDの範囲または名前で識別されたスニペットを再実行します。 IDの範囲の場合は、開始IDと終了IDをハイフンで区切って指定します。 リストを指定する場合は、リスト内の項目を空白で区切ります。 リスト内の最初の項目はIDまたはIDの範囲である必要があります。
/listコマンドを使用して、コード・スニペットのIDを確認します。 /-n-
再実行 -n前のスニペット。 たとえば、15のコード・スニペットを入力した場合、
/-4は11番目のスニペットを実行します。 コマンドは、カウントに含まれません。
入力ショートカット
次のショートカットは、JShellでコマンドおよびスニペットを入力する場合に使用できます。
タブ補完
- [Tab]
-
スニペット、コマンド、サブコマンド、コマンド引数、またはコマンド・オプションを入力するときは、Tabキーを使用してアイテムを自動的に完了します。 入力内容から項目を判定できない場合、使用可能なオプションが提示されます。
メソッド呼出しの入力時に、メソッド呼出しの左カッコの後で[Tab]キーを使用して、メソッドのパラメータを確認します。 メソッドに複数のシグネチャがある場合、すべてのシグネチャが表示されます。 もう一度Tabキーを押すと、メソッドの説明と最初のシグネチャのパラメータが表示されます。 追加のシグネチャの説明については、Tabキーを押し続けてください。
- [Shift]+[Tab] V
- 完全な式を入力した後、このキー・シーケンスを使用して、式を式のタイプによって決定される型の変数宣言に変換します。
- [Shift]+[Tab] M
- 完全な式または文を入力した後、このキー・シーケンスを使用して、式または文をメソッド宣言に変換します。 式が入力されている場合、戻り型は式のタイプに基づきます。
- [Shift]+[Tab] I
- 解決できない識別子が入力された場合、このキー・シーケンスを使用して、指定されたクラス・パスの内容に基づいて識別子を解決する使用可能なインポートを表示します。
コマンド略語
コマンドの省略形は、省略形でコマンドを一意に識別できる場合に受け入れられます。 たとえば、/lは/listコマンドとして認識されます。 ただし、/setまたは/saveコマンドが意図されているかどうかは判断できないため、/sは有効な略称ではありません。 /setコマンドには/seを使用し、/saveコマンドには/saを使用します。
サブコマンド、コマンド引数、およびコマンド・オプションについても、略語を使用できます。 たとえば、/m -aを使用してすべてのメソッドを表示します。
履歴ナビゲーション
入力されたものの履歴は、セッションを通じて維持されます。 上矢印と下矢印を使用して、現在および過去のセッションからコマンドとスニペットをスクロールします。 Ctrlキーを上下の矢印で使用して、複数行のスニペットの最初の行を除くすべてをスキップします。
履歴検索
Ctrl+Rキーの組み合わせを使用して、入力した文字列の履歴を検索します。 プロンプトが変わり、文字列と一致が表示されます。 Ctrl+Rは、履歴内の現在のロケーションから以前の項目まで後方を検索します。 Ctrl+Sは、履歴の現在のロケーションから後の項目まで検索します。
入力編集
JShellの編集機能は他の一般的なシェルと似ています。 キーボードのキーとキーの組み合わせにより、行編集のショートカットが提供されます。 CtrlキーとMetaキーは、キーの組み合わせで使用されます。 キーボードにメタ・キーがない場合、[Alt]キーをマップしてメタ・キーの機能を提供することがあります。
| キーまたはキーの組合せ | ACtion |
|---|---|
| 戻る | 現在の行を入力します。 |
| [←] | カーソルを左の1文字に移動します。 |
| 右矢印移動 | カーソルを右側の1文字にします。 |
| Ctrl+A | カーソルを行の先頭に移動します。 |
| Ctrl+E | カーソルを行末に移動します。 |
| Meta+B | カーソルを左の1単語に移動します。 |
| Meta+F | カーソルを右の1つの単語に移動します。 |
| 削除 | カーソルの下にある文字を削除します。 |
| バックスペース | カーソルの前にある文字を削除します。 |
| Ctrl+K | カーソルのテキストを行末まで削除します。 |
| Meta+D | カーソルを単語の最後まで削除します。 |
| Ctrl+W | 前の空白にカーソルのテキストを削除します。 |
| Ctrl+Y | 最後に削除されたテキストを行に貼り付けます。 |
| Meta+Y | Ctrl+Yの後、押すと、以前に削除されたテキストが表示されます。 |
JShellセッションの開始と停止の例
JShellはJDKとともに提供されています。 セッションを開始するには、コマンドラインでjshellと入力します。 メッセージが表示され、コマンドとスニペットの入力を求めるプロンプトが表示されます。
% jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell>
JShellの起動時に自動的にロードされたスニペットを確認するには、/list -startコマンドを使用します。 デフォルトの起動スニペットは、共通パッケージのインポート文です。 各スニペットのIDは、起動スニペットであることを示す文字sで始まります。
jshell> /list -start
s1 : import java.io.*;
s2 : import java.math.*;
s3 : import java.net.*;
s4 : import java.nio.file.*;
s5 : import java.util.*;
s6 : import java.util.concurrent.*;
s7 : import java.util.function.*;
s8 : import java.util.prefs.*;
s9 : import java.util.regex.*;
s10 : import java.util.stream.*;
jshell>
セッションを終了するには、/exitコマンドを使用します。
jshell> /exit
| Goodbye
%
スニペットの入力例
スニペットは、Javaステートメント、変数定義、メソッド定義、クラス定義、インポート・ステートメント、および式です。 末尾のセミコロンは欠落していても、スニペットの補完時に自動的に追加されます。
次の例は、2つの変数と、定義されているメソッドと、実行されているメソッドを示しています。 変数が指定されていないため、結果を保持するスクラッチ変数が自動的に作成されることに注意してください。
jshell> int a=4
a ==> 4
jshell> int b=8
b ==> 8
jshell> int square(int i1) {
...> return i1 * i1;
...> }
| created method square(int)
jshell> square(b)
$5 ==> 64
スニペットの変更例
変数、メソッド、またはクラスの定義を再度入力して変更します。
次の例に、メソッドの定義と、そのメソッドの実行を示します。
jshell> String grade(int testScore) {
...> if (testScore >= 90) {
...> return "Pass";
...> }
...> return "Fail";
...> }
| created method grade(int)
jshell> grade(88)
$3 ==> "Fail"
より多くの受講者がパスできるようにメソッドgradeを変更するには、メソッド定義を再度入力し、パス・スコアを80に変更します。 上矢印キーを使用して前のエントリを取得し、それらを再入力してif文を変更する必要がないようにします。 次の例では、新しい定義を示し、メソッドを再実行して新しい結果を表示します。
jshell> String grade(int testScore) {
...> if (testScore >= 80) {
...> return "Pass";
...> }
...> return "Fail";
...> }
| modified method grade(int)
jshell> grade(88)
$5 ==> "Pass"
数行を超えるスニペットの場合、またはいくつかの変更を加える場合は、/editコマンドを使用して、エディタでスニペットを開きます。 変更が完了したら、編集ウィンドウを閉じてJShellセッションに制御を戻します。 次の例は、編集ウィンドウが閉じられたときに表示されるコマンドとフィードバックを示しています。 /listコマンドを使用して、パス・スコアが85に変更されたことを示します。
jshell> /edit grade
| modified method grade(int)
jshell> /list grade
6 : String grade(int testScore) {
if (testScore >= 85) {
return "Pass";
}
return "Fail";
}
カスタム・フィード・バック・モードの作成例
フィードバック・モードにより、表示されるプロンプト、スニペットの入力時に示されるフィードバック・メッセージおよび表示される値の最大長が決まります。 あらかじめ定義されたフィードバック・モードが提供されます。 カスタム・フィード・バック・モードを作成するためのコマンドも提供されています。
/set modeコマンドを使用して、新しいフィードバック・モードを作成します。 次の例では、新しいモードmymodeが定義済みのフィードバック・モードnormalに基づいており、コマンド・フィード・バックの確認が表示されています:
jshell> /set mode mymode normal -command
| Created new feedback mode: mymode
新しいモードはnormalモードに基づいているため、プロンプトは同じです。 次の例は、どのプロンプトが使用されているかを確認し、プロンプトをカスタム文字列に変更する方法を示しています。 最初の文字列は標準のJShellプロンプトを表します。 2番目の文字列は、複数行スニペットの追加行のプロンプトを表します。
jshell> /set prompt mymode
| /set prompt mymode "\njshell> " " ...> "
jshell> /set prompt mymode "\nprompt$ " " continue$ "
表示される値の最大長は切り捨て設定によって制御されます。 異なるタイプの値は、異なる長さを持つことができます。 次の例では、全体の切捨て値72、可変値の式に対する切捨て値500を設定します。
jshell> /set truncation mymode 72
jshell> /set truncation mymode 500 varvalue
スニペットの入力後に表示されるフィードバックは、形式設定によって制御され、入力されたスニペットのタイプとそのスニペットについて実行される処理に基づいています。 事前定義済モードnormalでは、メソッドの作成時に文字列createdが表示されます。 次の例は、その文字列をdefinedに変更する方法を示しています:
jshell> /set format mymode action "defined" added-primary
/set feedbackコマンドを使用して、作成したフィードバック・モードの使用を開始します。 次の例に、使用中のカスタム・モードを示します。
jshell> /set feedback mymode
| Feedback mode: mymode
prompt$ int square (int num1){
continue$ return num1*num1;
continue$ }
| defined method square(int)
prompt$