名前
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-exports
module/package- 定義モジュールからエクスポートされたとみなされるパッケージを指定します。
--add-modules
module[,
module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
-C
flag- コンパイラに渡すフラグを指定します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
--class-path
path-
クラス・ファイルを見つけるために検索されるディレクトリおよびアーカイブを指定します。 このオプションは、
CLASSPATH
環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、セミコロン(;)を使用して項目を区切ります。 --enable-preview
- コードがこのリリースのプレビュー機能に依存できるようにします。
--execution
specification- 代替実行エンジンを指定します。ここで、specificationはExecutionControl仕様です。 仕様部の構文については、jdk.jshell.spiパッケージのドキュメントを参照してください。
--feedback
mode-
入力内容に応じて提供されるフィードバックの初期レベルを設定します。 初期レベルは、
/set feedback
modeコマンドを使用してセッション内でオーバーライドできます。 デフォルトはnormal
です。次の値はmodeに有効です:
verbose
- エントリについて詳細なフィードバックを示します。 実行された処理に関する追加情報は、処理結果の後に表示されます。 次のプロンプトは、フィードバックとは空行で区切られます。
normal
- 平均的な量のフィードバックを示します。 次のプロンプトは、フィードバックとは空行で区切られます。
concise
- 最小量のフィードバックを示します。 次のプロンプトは、コード・スニペットまたはフィードバックのすぐ後から続きます。
silent
- フィードバックを示しません。 次のプロンプトは、コード・スニペットのすぐ後から続きます。
- custom
-
モードの定義方法に基づいたカスタム・フィードバックを示します。 カスタム・フィードバック・モードは、
/set mode
コマンドを使用してJShell内に作成されます。
--help
または-h
あるいは-?
- 標準オプションのサマリーを出力し、ツールを終了します。
--help-extra
または-X
- 非標準オプションのサマリーを出力し、ツールを終了します。 非標準のオプションは予告なく変更される可能性があります。
-J
flag- ランタイム・システムに渡すフラグを指定します。 複数のフラグを渡すには、必要なフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
--module-path
modulepath- アプリケーション・モジュールの参照先を指定します。 LinuxおよびmacOSの場合は、コロン(:)を使用してパス内のアイテムを区切ります。 Windowsの場合は、セミコロン(;)を使用して項目を区切ります。
--no-startup
-
JShellの起動時に、起動スクリプトが実行されないようにします。 このオプションは、JShellの起動時にコマンド行に入力されたスクリプトのみを実行する場合、またはスクリプトが入力されなかったときに事前にロードされた情報なしにJShellを起動する場合に使用します。
--startup
オプションが使用されている場合、このオプションは使用できません。 -q
-
フィードバック・モードを
concise
に設定します。これは、--feedback concise
と入力した場合と同じです。 -R
flag- リモート・ランタイム・システムに渡すフラグを指定します。 複数のフラグを渡すには、渡すフラグまたはフラグ引数ごとにこのオプションのインスタンスを指定します。
-s
-
フィードバック・モードを
silent
に設定します。これは、--feedback silent
と入力した場合と同じです。 --show-version
- バージョン情報を出力し、ツールを入力します。
--startup
file-
このセッションのデフォルトの起動スクリプトをオーバーライドします。 スクリプトには、有効なコード・スニペットまたはコマンドを含めることができます。
スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
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-modules
module[,
module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exports
source-module/
package=
target-module[,
target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-path
path-
クラス・ファイルを見つけるために検索されるディレクトリおよびアーカイブを指定します。 このオプションは、
CLASSPATH
環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:
)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;
)を使用します。 --module-path
modulepath-
アプリケーション・モジュールの参照先を指定します。 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
/open
file-
指定されたスクリプトを開き、スニペットをツールに読み込みます。 スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
DEFAULT
- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE
- すべてのJava SEパッケージをインポートします。
PRINTING
-
print
、println
およびprintf
を、ツール内で使用するjshell
メソッドとして定義します。 TOOLING
-
jshell
ツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac
、jar
およびその他のメソッドを定義します。
/reload
[options]-
セッションを次のように再開します。
指定されたオプションがある場合は、そのオプションで環境設定を更新します。
実行の状態をリセットします。
起動スクリプトを実行します。
入力された順に履歴をリプレイします。 履歴には、
jshell
プロンプトに入力されたすべての有効なスニペットまたは/drop
コマンドが、コマンドラインで入力されたスクリプト、または/open
コマンドで入力されたスクリプトに含まれています。
コマンドラインに入力された環境設定、または以前の
/reset
、/env
または/reload
コマンドとともに指定された環境設定は、設定を上書きするoptionが入力されていないかぎり保持されます。有効なオプションは次のとおりです。
--add-modules
module[,
module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exports
source-module/
package=
target-module[,
target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-path
path-
クラス・ファイルを見つけるために検索されるディレクトリおよびアーカイブを指定します。 このオプションは、
CLASSPATH
環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:
)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;
)を使用します。 --module-path
modulepath-
アプリケーション・モジュールの参照先を指定します。 LinuxおよびmacOSの場合は、コロン(
:
)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;
)を使用します。 -quiet
- 表示せずに、有効な履歴をリプレイします。 エラーが表示されます。
-restore
-
以前の実行ツールの開始時の状態に環境をリセットしたり、
/reset
、/reload
、または/env
コマンドが前回の実行で最後に実行されたときの状態にリセットします。 その時点以降の有効な履歴がリプレイされます。 このオプションは、前回のJShellセッションを復元する場合に使用します。
/reset
[options]-
次のように入力されたスニペットをすべて破棄し、セッションを再開します。
指定されたオプションがある場合は、そのオプションで環境設定を更新します。
実行の状態をリセットします。
起動スクリプトを実行します。
履歴はリプレイされません。 入力されたコードはすべて失われます。
コマンドラインに入力された環境設定、または以前の
/reset
、/env
または/reload
コマンドとともに指定された環境設定は、設定を上書きするoptionが入力されていないかぎり保持されます。有効なオプションは次のとおりです。
--add-modules
module[,
module...]- 初期モジュールに加えて解決するルート・モジュールを指定します。
--add-exports
source-module/
package=
target-module[,
target-module]*- packageのエクスポートをsource-moduleからtarget-moduleに追加します。
--class-path
path-
クラス・ファイルを見つけるために検索されるディレクトリおよびアーカイブを指定します。 このオプションは、
CLASSPATH
環境変数内のパスをオーバーライドします。 環境変数を設定しておらず、このオプションを使用しない場合は、現在のディレクトリが検索されます。 LinuxおよびmacOSの場合は、コロン(:
)を使用してパス内のアイテムを区切ります。 Windowsの場合は、アイテムを区切るためにセミコロン(;
)を使用します。 --module-path
modulepath-
アプリケーション・モジュールの参照先を指定します。 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
。 エディタ環境変数がいずれも設定されていない場合、このオプションは、エディタをデフォルト・エディタに設定します。このオプションは、エディタを起動するためのコマンドが入力されている場合は使用できません。
-retain
- セッション間でエディタ設定を保存します。 他にオプションまたはコマンドを入力しなかった場合、現在の設定が保存されます。
-wait
- 編集の完了時を指示するようにユーザーに求めます。 それ以外の場合は、エディタの終了時にJShellに制御を戻します。 このオプションは、編集ウィンドウがすでに存在するときなど、使用中のエディタをすぐに終了する場合に使用します。 このオプションは、エディタを起動するためのコマンドが入力されている場合にのみ有効です。
feedback
[mode]-
入力への応答に使用されるフィードバック・モードを設定します。 モードを入力しなかった場合、現在のモードが表示されます。
以下のモードが有効です:
concise
,normal
,silent
,verbose
、および/set mode
コマンドで作成されたカスタム・モード。 format
mode 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
コマンドを使用します。 prompt
mode"
prompt-string"
"
continuation-prompt-string"
-
JShell内で入力に対してプロンプトを設定します。 モードを入力しなかった場合、すべてのフィードバック・モードについて現在のプロンプトが表示されます。 モードのみを入力した場合、そのモードについて現在のプロンプトが表示されます。
プロンプトを定義する場合、次の引数は必須です。
- mode
-
プロンプトが適用されるフィードバック・モードを指定します。
/set mode
コマンドで作成されたカスタム・モードのみを変更できます。 "
prompt-string"
- 入力の最初の行に対するプロンプトとして使用する文字列を指定します。
"
continuation-prompt-string"
- スニペットの完成に必要な追加の入力行を求めるプロンプトとして使用する文字列を指定します。
start
[-retain
] [file [file...]|option]-
次の
/reset
、/reload
、または/env
コマンドの入力時に使用される起動スクリプトの名前を設定します。 複数のスクリプトを入力した場合、スクリプトは入力順に実行されます。 スクリプトまたはオプションを入力しなかった場合、現在の起動設定が表示されます。スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
DEFAULT
- デフォルトのエントリをロードします(一般にインポートとして使用されます)。
JAVASE
- すべてのJava SEパッケージをインポートします。
PRINTING
-
print
、println
およびprintf
を、ツール内で使用するjshell
メソッドとして定義します。 TOOLING
-
jshell
ツール内のコマンドライン・インタフェースを介してJDKツールを実行するためのjavac
、jar
およびその他のメソッドを定義します。
有効なオプションは次のとおりです。
-default
- 起動設定をデフォルト設定に設定します。
-none
- 起動設定を使用しないことを指定します。
セッション間で開始設定を保存するには、
-retain
オプションを使用します。 truncation
mode 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]キーを上矢印および下矢印と一緒に使用して、複数行のスニペットの1行目を除いた全行をスキップします。
履歴の検索
[Ctrl]+[R]キーの組合せを使用して入力した文字列を履歴で検索します。 プロンプトは、文字列および一致を示すように変化します。 [Ctrl]+[R]は、履歴の現在の位置から後方に向かって古いエントリを検索します。 [Ctrl]+[S]は、履歴の現在の位置から前方に向かって新しいエントリを検索します。
入力の編集
JShellの編集機能は、他の一般的なシェルのものと似ています。 キーボードのキーおよびキーの組合せが行編集のショートカットになります。 [Ctrl]キーとMetaキーは、キーの組合せで使用します。 キーボードにメタ・キーがない場合、[Alt]キーをマップしてメタ・キーの機能を提供することがあります。
キーまたはキーの組合せ | アクション |
---|---|
戻り値 | 現在の行を入力します。 |
[←] | カーソルを左に1文字移動します。 |
右矢印移動 | カーソルを右側の1文字にします。 |
[Ctrl]+[A] | カーソルを行の先頭に移動します。 |
[Ctrl]+[E] | カーソルを行の末尾に移動します。 |
メタ・キー+[B] | カーソルを左に1単語移動します。 |
メタ・キー+[F] | カーソルを右に1単語移動します。 |
削除 | カーソルの下にある文字を削除します。 |
[Back Space] | カーソルの前にある文字を削除します。 |
[Ctrl]+[K] | カーソルから行の末尾までのテキストを削除します。 |
メタ・キー+[D] | カーソルから単語の末尾までのテキストを削除します。 |
[Ctrl]+[W] | カーソルから前の空白までのテキストを削除します。 |
[Ctrl]+[Y] | 直近に削除されたテキストを行に貼り付けます。 |
メタ・キー+[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つの変数および1つのメソッドの定義と、そのメソッドの実行を示します。 スクラッチ変数は、変数が指定されなかったので、結果を保持するために自動的に作成されることに注意してください。
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$