7 スクリプト
JShellスクリプトは、ファイル内にある一連のスニペットおよびJShellコマンド、1つのスニペットまたは行単位のコマンドです。
スクリプトはローカル・ファイルまたは次の事前定義済スクリプトのいずれかにできます。
| スクリプト名 | スクリプトの内容 | 
|---|---|
| 
                               DEFAULT  | 
                           
                               共通で必要なインポート宣言が含まれています。このスクリプトは、他の起動スクリプトが提供されない場合に使用します。  | 
                        
| 
                               PRINTING  | 
                           
                               JShellメソッドを定義し、PrintStreamのprint、printlnおよびprintfメソッドにリダイレクトされます。  | 
                        
| 
                               JAVASE  | 
                           
                               
  | 
                        
トピック
起動スクリプト
起動スクリプトには、JShellセッションが起動されたときにロードされるスニペットおよびコマンドが含まれています。デフォルトの起動スクリプトには、共通のインポート文が含まれています。必要に応じて、カスタム・スクリプトを作成できます。
起動スクリプトは、jshellツールがリセットされるたびにロードされます。リセットは、初期起動時に/reset、/reloadおよび/envコマンドで発生します。スクリプトを設定しない場合、デフォルトの起動スクリプトのDEFAULTが使用されます。このデフォルト・スクリプトでは、共通して必要となるインポート宣言を定義しています。 
                  
ノート:
Java言語では、java.langパッケージが自動的にインポートされることを定義しているため、このパッケージを明示的にインポートする必要はありません。起動スクリプトを設定するには、/set startコマンドを使用します。
                  
jshell> /set start mystartup.jsh
jshell> /reset
|  Resetting state.すべての/setコマンドと同様に、-retainオプションを使用しないかぎり、設定の期間は現在のセッションです。通常、起動スクリプトの設定をテストする場合には、-retainオプションは使用しません。希望する設定が見つかった場合、-retainオプションを使用して、これを保持します。
                  
jshell> /set start -retain次回jshellツールを起動する際に、この起動スクリプトがロードされます。
                  
起動スクリプトは、状態がリセットされた場合にのみ、現在のセッションにロードされることに注意してください。スクリプトの内容は格納されますが、スクリプトへの参照は格納されません。スクリプトは、/set startコマンドが実行されたときにのみ読み込まれます。ただし、事前定義済スクリプトは参照によってロードされ、更新できるのは新しいリリースのJDKからです。
                  
起動スクリプトは、--startupコマンドラインのフラグで指定することもできます。
                  
% jshell --startup mystartup.jsh試用の場合、System.out.接頭辞を必要としないメソッドを出力する場合に役立ちます。事前定義済のPRINTINGスクリプトを使用して、print、printlnおよびprintfメソッドにアクセスします。/set startを使用すると複数の起動スクリプトを指定できます。次の例は、デフォルトのインポートおよび出力の両方の定義をロードする起動スクリプトを設定しています。
                  
jshell> /set start -retain DEFAULT PRINTING
jshell> /exit
|  Goodbye
% jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro
jshell> println("Hello World!")
Hello World!-retainフラグを使用して、jshellツールの今後のセッションの起動スクリプトとしてこれらの事前定義済スクリプトを設定します。引数を指定しないで/set startを使用すると、これらの起動スクリプトで定義された内容の詳細が表示されます。
                  
コマンドラインで複数の起動スクリプトを設定するには、各スクリプトの--startupフラグを使用します。
                  
% jshell --startup DEFAULT --startup PRINTINGスクリプトの作成およびロード
スクリプトを使用して、セッション時に使用可能なインポート文およびコードでJShellセッションを設定します。
スクリプトの作成
エディタでスクリプトを外部で作成するか、JShellで入力した項目から生成することもできます。次のコマンドのいずれかを使用して、JShellセッションのエントリからスクリプトを作成します。
jshell> /save mysnippets.jsh
jshell> /save -history myhistory.jsh
jshell> /save -start mystartup.jsh例に示された最初のコマンドは、現在のアクティブなスニペットをmysnippets.jshに保存します。示されている2番目のコマンドは、すべてのスニペットおよびコマンドの履歴を有効なものも無効なものもmyhistory.jshに保存します。示されている最後のコマンドは、現在の起動スクリプト設定の内容をmystartup.jshに保存します。指定されたファイル名は、有効なファイル・パスおよび名前にします。
                     
スクリプトのロード
JShellセッションが起動されると、スクリプトはコマンドラインからロードできます。
% jshell mysnippets.jsh/openコマンドを使用すると、JShellセッション内でスクリプトをロードすることもできます。
                     
jshell> /open PRINTING