この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。
Java9でようやくREPLが使えるようになります
Java9の新機能「jshell」
Ruby、Python、Scala、Clojure、Javascript(node)などなど、
最近よく使用される言語ではだいたいREPL機能が使えます。
Javaにはいままで公式なREPLを持っていませんでしたが、
来年登場予定のJava9ではjshellと呼ばれるREPLが使えるようになります。
Java9はEA版がすでに使用できるので、インストールして試してみましょう。
環境
今回使用した動作環境は以下のとおりです。
- OS : MacOS X 10.10.5
- Java : 9-ea
jshellを使ってみる
1.インストール
ここからJDK9をダウンロードしてインストールします。
インストールしたら/Library/Java/JavaVirtualMachines/jdk-9.jdk/Contents/Home/binのパスを通します。
2.jshell起動
jshellコマンドで起動します。
% jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
普通にJava構文が実行できます。手軽にちょっとした関数やStreamの動作を確認することができます。
jshell> String s = "hello";
s ==> "hello"
jshell> int n = 10;
n ==> 10
jshell> printf(s);
hello
jshell上で使用できるコマンドもあります。
/listコマンドは、jshellで実行した履歴を表示します。
jshell> /list
1 : String s = "hello";
2 : int n = 10;
3 : printf(s)
/editコマンドは履歴の編集(エディタが起動)、 /drop (もしくは/reset)で履歴の削除ができます。
また、/openを使用してファイルからコードを読み込むこともできます。
jshell上で定義されている変数を確認するには、/varsコマンドを使用します。
jshell> /vars
| String s = "hello"
| int n = 10
変数以外にも /methods(関数) /imports(import) /classes(クラス)で
それぞれ確認することができます。
/exitでjshellを終了します。
jshell> /exit
| Goodbye
まとめ
ようやくJavaにもREPLがきますね。(まだ先ですが)
ちょっとしたコードを確認するためにわざわざmain関数を書いたり
JUnitテストクラスをつくったりしなくてもすみそうです。