Java
 Computer >> コンピューター >  >> プログラミング >> Java

Java 9のJShellで既存のスニペットを再実行する方法

JShellとは

JShellは、Java 9で初めて導入された公式のREPL(Read-Eval-Print Loop)ツールです。コマンドライン上でJavaのコードスニペットを手軽に実行・評価できるため、小さなロジックの検証や学習に非常に便利です。

基本的な操作は以下のとおりです。

  • jshell — コマンドを入力してJShellセッションを開始
  • /exit — セッションを終了
  • /help — 特定のコマンドの使い方を検索

既存のスニペットを再実行する:/reloadコマンド

JShellで入力済みのすべてのスニペットを再実行したい場合は、「/reload」コマンドを使用します。このコマンドを実行すると、セッションの状態を保持したまま、これまでに入力したコードが順番に再度評価されます。

まず、いくつかのスニペットを作成してみましょう。

jshell> 2+10
$1 ==> 12

jshell> String s = "Tutorialspoint"
s ==> "Tutorialspoint"

jshell> System.out.println("Tutorialspoint")
Tutorialspoint

jshell> int num1 = 25
num1 ==> 25

JShellでは、スニペットID(/1、/2など)を指定することで、過去に入力したコードを個別に再実行することもできます。

jshell> /1
2+10
$5 ==> 12

jshell> /2
String s = "Tutorialspoint";
s ==> "Tutorialspoint"

jshell> /3
System.out.println("Tutorialspoint")
Tutorialspoint

jshell> /4
int num1 = 25;
num1 ==> 25

/reloadの実行例

続いて「/reload」コマンドを適用します。JShellは既存のすべてのスニペットを再実行し、その結果を出力します。

jshell> /reload
| Restarting and restoring state.
-: 2+10
-: String s = "Tutorialspoint";
-: System.out.println("Tutorialspoint")
Tutorialspoint
-: int num1 = 25;
-: 2+10
-: String s = "Tutorialspoint";
-: System.out.println("Tutorialspoint")
Tutorialspoint
-: int num1 = 25;
-: int num1 = 25;

セッションを初期化する:/resetコマンド

一方、セッション内のこれまでのコードをすべて削除したい場合は、「/reset」コマンドを使用します。実行すると「Resetting state」というメッセージが表示され、JShellはまっさらな状態に戻ります。

jshell> /reset
| Resetting state.

jshell>

このように、JShellでは「/reload」で履歴を保持したまま再実行でき、「/reset」で状態を完全にリセットできます。用途に応じて使い分けることで、対話的なJava開発をより効率的に進められます。

  1. Java 9のJShellでシステムプロパティを取得する方法【コード例付き】

    JShellは、REPL(Read-Evaluate-Print-Loop)と呼ばれる対話型ツールです。main()メソッドを持つクラスを作成しなくても、簡単なJavaの文を入力するとその場で評価され、結果がすぐに表示されます。起動も簡単で、コマンドラインプロンプトで「jshell」と入力するだけでOKです。 システムプロパティを取得するには、System.getProperty()メソッドとSystem.getProperties()メソッドを使用します。 まずは、Systemクラスのstaticメソッドであるproperty()を使って、特定のシステムプロパティの値をJShell上で表示

  2. Java 9でJavaFXを使ってJShellをプログラムから実装する方法

    JShellは、サンプル式を対話的に実行できるツールです。通常はコマンドラインから利用しますが、JavaFXアプリケーションの中でプログラム的にJShellを実装することも可能です。その場合、Javaプログラムに以下のパッケージをインポートする必要があります。import jdk.jshell.JShell; import jdk.jshell.SnippetEvent; import jdk.jshell.VarSnippet;これらのクラスの役割は次のとおりです。JShell:評価エンジンの本体。式や文を評価(eval)するためのAPIを提供します。SnippetEvent:評価結果として