Java 9のJShellで現在のセッションを保存する方法
Java 9のJShellとは
Java 9では、REPL(Read-Evaluate-Print-Loop)と呼ばれる新機能としてJShellが導入されました。JShellはコマンドライン上で対話的にJavaコードを評価できるツールで、完全なプログラムを作成しなくても手軽にコードを試すことができます。
JShellに入力したコードや内部コマンドは、そのセッション中でのみ有効です。JShellを終了して再度起動すると、それまでに入力したコードはすべて失われてしまいます。そこで、入力したコードをファイルに保存するための内部コマンド「/save」が用意されています。
/saveコマンドの構文
/ save [ファイルパス] / save -all [ファイルパス] / save -history [ファイルパス] / save -start [ファイルパス]
- /save [ファイルパス]:オプションを指定しない場合、セッション中に入力された有効なコードのみが、第2引数で指定したファイルに保存されます。なお、エラーになったコードや内部コマンドは保存されません。
- /save -all [ファイルパス]:セッション中に入力された有効なコードに加えて、エラーになったコードや起動時に読み込まれたコードもすべて保存します。ただし、入力された内部コマンドは記録されません。
- /save -history [ファイルパス]:セッション中に入力されたすべてのコードとコマンドを、第2引数で指定したファイルに保存します。内部コマンドも含めてファイルに記録されます。
- /save -start:JShellの起動時に実行されたすべてのコードを保存します。
使用例
以下のコード例では、「/save」コマンドの後に指定したオプションに応じて、JShellに入力したコードがそれぞれ異なるファイルに保存されます。保存先のファイルには「.jsh」という拡張子を付けてディレクトリ内に格納します。
C:\Users\User>jshell
| JShellへようこそ -- バージョン9.0.4
| 概要については、次を入力してください: /help intro
jshell> int x = 20
x ==> 20
jshell> double y = 30
y ==> 30.0
jshell> public int sum(int a, int b) {
...> return a + b;
...> }
| メソッドsum(int,int)を作成しました
jshell> String str = "TutorialsPoint"
str ==> "TutorialsPoint"
jshell> /list
1 : int x = 20;
2 : double y = 30;
3 : public int sum(int a, int b) {
return a + b;
}
4 : String str = "TutorialsPoint";
jshell> int var = "error"
| エラー:
| 互換性のない型: java.lang.Stringはintに変換できません
| int var = "error";
| ^-----^
jshell> /save C:\Users\User\save.jsh
jshell> /save -all C:\Users\User\saveAll.jsh
jshell> /save -history C:\Users\User\saveHistory.jsh
jshell> /save -start C:\Users\User\saveStart.jsh保存したセッションを復元するには
保存した「.jsh」ファイルは、次回JShellを起動した際に「/open ファイルパス」コマンドで読み込むことで、以前のセッションのコードを簡単に復元できます。「/save」コマンドと組み合わせて使えば、作業の中断や再開もスムーズに行えるでしょう。
-
Java 9のJShellでデフォルトエディタを変更する方法
JShellは、Java 9から導入されたREPL(Read-Evaluate-Print Loop)ツールです。コマンドラインからコードを読み込み、入力されたスニペットを評価し、その結果を画面に出力してくれます。 JShellのデフォルトエディタを変更する手順 JShellでは、デフォルトの「JShell Editor Pad」を使ってコードを編集できます。さらに、「/set」コマンドを使用すれば、デフォルトエディタを別のものに変更することも可能です。「/edit」コマンドを実行すると、設定されたエディタが起動されます。エディタを変更するには、次のコマンドを実行します。 /set edito
-
Java 9のJShellでスニペットを保存・編集・削除する方法
Java Shell、通称JShellは、Java 9で正式に導入された公式のREPL(Read-Evaluate-Print-Loop)ツールです。対話型シェルを提供し、main()メソッドを作成したり、コードを実行前にコンパイルしたりすることなく、迅速なプロトタイピングやデバッグを行うことができます。JShellは、コマンドプロンプトで「jshell」と入力するだけで簡単に起動できます。この記事では、JShellで作成したスニペット(コード断片)を保存、編集、削除する方法を解説します。スニペットを保存する(/save)スニペットのソースコードをファイルに保存するには、「/save [-al