[tips] jshellでREPL [Java9]
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テストクラスをつくったりしなくてもすみそうです。