3 コマンド

JShellコマンドはJShellセッションで入力され、環境の制御および情報の表示に使用されます。

コマンドの概要

JShellコマンドはセッション内で環境を制御したり、情報を表示します。

コマンドは、スラッシュ(/)でスニペットと区別されます。現在の変数、メソッドおよびタイプの詳細は、/vars/methodsおよび/typesコマンドを使用します。入力済スニペットのリストについては、/listコマンドを使用します。次の例は、「スニペットの試用」の例に基づいたコマンドを示しています。

jshell> /vars
|    int x = 45
|    int $3 = 4
|    String $5 = "OceanOcean"

jshell> /methods
|    twice (String)String

jshell> /list

   1 : System.out.println("Hi");
   2 : int x = 45;
   3 : 2 + 2
   4 : String twice(String s) {
         return s + s;
       }
   5 : twice("Ocean")

変数の型および値、メソッドのタイプ・シグネチャが表示されます。

JShellには、デフォルトの起動スクリプトが用意されており、JShellが起動する前にサイレントかつ自動的に実行されるので、ユーザーは迅速に作業に取りかかることができます。起動スクリプトからのエントリは、/list -startまたは/list -allコマンドでリクエストしないかぎり、リストされません。

jshell> /list -all

  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.*;
   1 : System.out.println("Hi");
   2 : int x = 45;
   3 : 2 + 2
   4 : String twice(String s) {
         return s + s;
       }
   5 : twice("Ocean")

デフォルトの起動スクリプトは、いくつかの共通インポートから構成されます。/set startコマンドを使用して、起動エントリをパーソナライズできます。このコマンドの詳細は、/help /set startを入力してください。/save -startコマンドは、現在の起動スクリプトを独自の起動スクリプトの開始点として保存します。

他の重要なコマンドには、JShellを終了するための/exit、スニペットを保存するための/save、ファイルからスニペットを入力するための/openがあります。

JShellコマンドをリストするには、/helpを入力します。

コマンドのタブ補完

スニペットの補完と同様に、コマンドおよびコマンド・オプションを入力する場合、[Tab]キーを使用すると自動的にコマンドまたはオプションが補完されます。入力内容から補完内容を判定できない場合、使用可能な選択肢が提示されます。

次の例は、コマンドの先頭にスラッシュ(/)を入力した後に[Tab]を押したときのフィードバックを示しています。

jshell> /<Tab>
/!          /?          /drop       /edit       /env        /exit       /help
/history    /imports    /list       /methods    /open       /reload     /reset      
/save       /set        /types      /vars       

<press tab again to see synopsis>

jshell> /

一意の補完がその場所で行われます。たとえば、/lを入力して[Tab]を押すと、行は/listに置き換わります。

jshell> /l<Tab>

jshell> /list

タブ補完はコマンド・オプションにも使用できます。次の例は、[Tab]キーを使用して/listコマンドのオプションを表示する例を示しています。

jshell> /list -<Tab>
-all       -history   -start     

<press tab again to see synopsis>

jshell> /list -

[Tab]を再度押すとコマンドの概要を表示するメッセージを確認してください。これはコマンドの簡潔な説明です。[Tab]を3回押すと、ヘルプ・ドキュメントが表示されます。次の例は、[Tab]を2回押したときと3回押したときの結果を示しています。

jshell> /list -<Tab>
list the source you have typed

<press tab again to see full documentation>

jshell> /list -<Tab>
Show the snippets, prefaced with their snippet IDs.

/list
        List the currently active snippets of code that you typed or read with /open

/list -start
        List the evaluated startup snippets

/list -all
        List all snippets including failed, overwritten, dropped, and startup

/list <name>
        List snippets with the specified name (preference for active snippets)

/list <id>
        List the snippet with the specified snippet ID.
        One or more IDs or ID ranges may used, see '/help id'

jshell> /list -

一意の引数の補完がその場所で行われます。たとえば、/list -a<Tab>を入力すると、-allオプションが自動的に表示されます。

jshell> /list -a<Tab>

jshell> /list -all

スニペット名も[Tab]で補完できます。たとえば、JShellセッションでvolumeメソッドをすでに定義していた場合、メソッド名の先頭の文字を入力した後に[Tab]を押すと、メソッド名全体が表示されます。

jshell> /ed v<Tab>

jshell> /ed volume

コマンドのファイル引数の位置に[Tab]を使用すると、使用可能なファイルが表示されます。

jshell> /open <Tab>
myfile1      myfile2    definitions.jsh

<press tab again to see synopsis>

jshell> /open 

一意のファイル名の補完がその場所で行われます。

jshell> /open d<Tab> 

jshell> /open definitions.jsh

コマンドの省略形

省略形を使用すると、入力する量が少なくなります。コマンド、/setサブコマンド、コマンドの引数およびコマンド・オプションは、すべて省略できます。ただし、省略形が一意の場合にかぎります。

/lで始まるコ唯一のマンドは/listで、-aで始まる/listの唯一のオプションは-allです。したがって、次の省略形を使用すると、/list -allコマンドを入力できます。

jshell> /l -a

また、/seで始まる唯一のコマンドは/setで、feで始まる唯一の/setサブコマンドはfeedbackで、vで始まる唯一のフィードバック・モードはverboseです。これは、vで始まるカスタムのフィードバックが存在しないことを前提としています。したがって、次の省略形を使用すると、フィードバック・モードを詳細モードに設定できます。

jshell> /se fe v

/save/setの両方が同じ文字で始まるので、/sは十分な省略形ではないことに注意してください。不明な場合は、タブ補完を使用するとオプションを表示できます。