Java 9のJShellで使える4つのフィードバックモードの違いと切り替え方
JShellのフィードバックモードとは
JShellツールで操作を実行すると、コマンドの成功・エラー、作成された変数の型やその値といったメッセージが表示されます。この表示内容は、「/set feedback」コマンドを使ってカスタマイズできます。このコマンドを実行すると、現在設定されているフィードバックモードと、利用可能な各モードの一覧が確認できます。
jshell> /set feedback | /set feedback normal | | Available feedback modes: | concise | normal | silent | verbose
JShellには、以下の4つのフィードバックモードが用意されています。
1. normal(ノーマル)モード:デフォルト設定
「/set feedback normal」は、JShellのデフォルトのフィードバックモードです。式を評価すると、対応する結果と、値が格納された内部変数が返されます。変数を作成した場合は、変数名とその値が表示されます。また、メソッドやクラスなどのデータ型を作成した際には、作成した型を示すメッセージが出力されます。
jshell> /set feedback normal
| Feedback mode: normal
jshell> 5 + 5
$1 ==> 10
jshell> int i = 20
i ==> 20
jshell> int sum(int a, int b) {
...> return a + b;
...> }
| created method sum(int,int)
2. verbose(詳細)モード:最も情報量が多い
「/set feedback verbose」は、最も多くの情報を表示するフィードバックモードです。命令を評価すると、結果だけでなく、値が代入された内部変数名や式の型まで表示されます。変数の作成時も同様の詳細な情報が得られます。一方、メソッドやクラスなどを作成した場合の出力は、normalモードと同一です。
jshell> /set feedback verbose
| Feedback mode: verbose
jshell> 2 + 2
$1 ==> 4
| created scratch variable $1 : int
jshell> String str = "Tutorix"
str ==> "Tutorix"
| created variable str : String
jshell> int div(int a, int b) {
...> return a/b;
...> }
| created method div(int,int)
3. concise(簡潔)モード:最小限の情報だけ表示
「/set feedback concise」は、最小限の情報のみを表示するモードです。式を評価すると、作成された内部変数の名前と式の結果が表示されます。ただし、変数・メソッド・クラスなどの作成時には、JShellからの応答はありません(コードにエラーがある場合を除く)。エラー発生時には、通常どおりエラーメッセージが出力されるため安心です。
jshell> /set feedback concise jshell> 2 + 2 $1 ==> 4 jshell> int i = 10; jshell> float y = "xyz"; | Error: | incompatible types: java.lang.String cannot be converted to float | float y = "xyz"; | ^---^
4. silent(サイレント)モード:何も表示しない
「/set feedback silent」は、情報を一切表示しないモードです。評価したい式を入力すると、JShellは結果を内部変数に保存しますが、画面上には結果を表示しません。変数・メソッド・クラスなどの作成時も同様で、すべて内部で処理されます。ただし、コマンドにエラーがある場合のみ、エラーメッセージが表示されます。
jshell> /set feedback silent
-> 3+3
-> int x = 7
-> int sum(int x, int y) {
>> return x + y;
>> }
-> double y = "abc";
| Error:
| incompatible types: java.lang.String cannot be converted to double
| double y = "abc";
| ^---^
->
まとめ:目的に合わせてモードを使い分けよう
JShellのフィードバックモードは、用途に応じて使い分けることで作業効率が大きく向上します。Javaの学習中や動作の詳細を確認したいときは「verbose」、日常的な開発作業には標準の「normal」、出力をできるだけ抑えたいスクリプト実行などでは「concise」や「silent」が便利です。「/set feedback」コマンド一つで簡単に切り替えられるので、状況に応じて活用してみてください。
-
Java 9 JShellの起動スクリプト(DEFAULT・JAVASE・PRINTING)の違いと使い方
JShellは、Java 9で導入された対話型のJavaシェルツールです。コマンドラインプロンプトから起動でき、入力したコードをその場で評価して結果を即座に表示します。いわゆるREPL(Read-Evaluate-Print-Loop:読み込み→評価→表示→繰り返し)ツールとして動作するため、コード断片の動作確認やAPIの学習に非常に便利です。 起動スクリプトの指定方法(--startupフラグ) JShellでは、起動時にスクリプトを読み込むことで、あらかじめ定義済みのimport文や便利なメソッドを使える状態でセッションを開始できます。起動スクリプトを指定するには「--startup」フ
-
Java 9のJShellで使える「/edit」コマンドの種類と使い方
JShellは、Java 9で導入されたコマンドラインツールです。main()メソッドを用意しなくても、宣言・ステートメント・式をその場で評価できるのが大きな特徴です。さらに、JShellにはJShell Edit Padという簡易テキストエディタが組み込まれており、「/edit」コマンドで起動することで、入力済みのコードを手軽に編集できます。 /editコマンドの3つの形式 JShellで利用できる「/edit」コマンドには、次の3つの形式があります。 /edit /edit [ID] /edit [コード名] /edit:引数なしで実行すると、現在アクティブなすべてのコードがテキストエデ