Java9 JShellのいろは

OpenJDK9のうちからJava9からの機能であるJShellを弄っていて記事にしようと思っていたらJava9が正式リリースになってしまいました。せっかくなのでメモ的なものを書いておきます。本当は社内向けに作った教育用資料を貼れると良いのですが、機密文書横流しで始末書とかになったらたまらないので諦めます。

JShellはREPL(Read–eval–print loop)です。Javaは今までいちいちコンパイルして実行しないと結果が分からなかったのが、コマンド1つ打てばすぐに結果が分かるようになったわけです。

JShellを利用するには、JDK9をインストールして(JRE9の方ではありません)jdk-9\binにパスを通してjshellって打ち込めば良いです。Windowsの場合はエクスプローラからjshell.exeを実行してもよいです。

C:\Program Files\Java\jdk-9\bin>jshell.exe
JShellへようこそ -- バージョン9
概要については、次を入力してください: /help intro

とりあえず /help intro と打ち込めば、JShell の説明を出してくれます。

jshell> /help intro


intro


jshellツールを使用すると、Javaコードを実行して即座に結果を取得できます。
int x = 8などのJava定義(変数、メソッド、クラスなど)、
x + xなどのJava式またはJava文を入力したり、
インポートしたりできます。
これらのJavaコードの小さなチャンクを「スニペット」と呼びます。


また、/listなどの実行する内容を理解および制御できるjshellコマンドも
あります


コマンドのリストを参照する場合: /help

HelloWorld的なものは本当に簡単に試せます。クラスとかメソッドを途中まで打ち込んでTabキーを押すと補完が動くので楽です。1行に1命令だけ書く場合は、行末のセミコロンは不要です(あっても良い)。

jshell> System.out.print
print( printf( println(


jshell> System.out.println("Hello, JShell!!")
Hello, JShell!!

受け皿となる変数を用意せずに適当な計算をすると、勝手に型を推定してテンポラリの変数に代入してくれます。便利。

jshell> 1 + 2 + 3.14
$2 ==> 6.140000000000001

jshell> /var
double $2 = 6.140000000000001

JShellのコマンドは全て / から始まります。/help を打ち込めば表示されるので、一通り試せばJShellの使い方はかなり理解できるかと思います。必見です。

JShellを終えるときは /exit です。お疲れ様でした。