注目記事

【Javaコード入門】コマンド_⑤jshellコマンド

対話式のシェル環境を起動する – jshellコマンド

jshell option
 option:コマンドオプション

jshellコマンドは、Javaコードをコマンドライン上で対話式に実行するためのREPL(Read-Eval-Print-Loop)環境を起動します。Java 9で追加されています。
Java 9以前では、簡単なコードを利用するにもコンパイル&実行という手順を踏む必要がありましたが、JShellを利用することでその場で即座に実行できます。
指定できるコマンドオプション(option)には、以下のようなものがあります。

jshellコマンドの主なオプション
オプション 概要
–-classpath パス 関連するクラスファイルの検索先。複数指定時は、セミコロン(Windows)、またはコロン(Unix)区切り
–-module-path パス モジュールの検索先
–-enable-preview プレビュー機能を有効化

たとえば以下はJShellを起動して、簡単なコードを実行する例です。

  1. PS C:\jdk-23.0.1\bin> jshell
  2. |  JShellへようこそ -- バージョン23.0.1
  3. |  概要については、次を入力してください: /help intro
  4.  
  5. jshell> import java.util.ArrayList;  (①インポート)
  6.  
  7. jshell> new ArrayList<String>();   (②リストを定義)
  8. $2 ==> []
  9.  
  10. jshell> $2.add("おはよう");  (③リストを操作)
  11. $3 ==> true
  12.  
  13. jshell> $2.add("こんにちは");
  14. $4 ==> true
  15.  
  16. jshell> $2.get(0);
  17. $5 ==> "おはよう"
  18.  
  19. jshell> /exit    (④JShellを終了)
  20. |  終了します

JShellのプロンプトは「jshell> 」です。ライブラリを利用する際には、普通のコードと同じくimport命令でクラスをインポートします(①)。
以降のコード(②~③)は、暗黙的にmainメソッド配下のコードと見なされます。また、変数の宣言も不要です。生成されたオブジェクトは、そのまま自動変数$1、$2…に順に代入されるからです。③でも②で生成したArrayListオブジェクトに変数$2経由でアクセスできています。
JShellを終了するには、/exitメタコマンドを利用します。

コマンド_目次
javacコマンド
javaコマンド
jarコマンド
javadocコマンド
jshellコマンド

監修

山田祥寛(有限会社 WINGSプロジェクト)
静岡県榛原町生まれ。一橋大学経済学部卒業後、NEC にてシステム企画業務に携わるが、2003年 4 月に念願かなってフリーライターに転身。Microsoft MVP for Visual Studio and Development Technologies。執筆コミュニティ「WINGSプロジェクト(https://wings.msn.to/)」の代表でもある。主な著書に『改訂 3 版JavaScript 本格入門』(技術評論社)、「独習シリーズ(C#・Python・PHP・Ruby・JSP&サーブレットなど)」(翔泳社)、「速習シリーズ(ASP.NET Core・Vue.js・React・TypeScript・ECMAScript、Laravel など)」(Amazon Kindle)など。売り上げの累計は100万部を超える。