JShellを試してみた
最近、ちょっと今更ながら、Java 9からJavaでもLL言語には標準で付いていることが多い、RPELが搭載されるようになったことを知ったので、試してみました。
インストール
- Mac OSXにインストール
下記からダウンロードし、インストールを行う
JDK 9 Early Access Releases — Project Kenai
コンソールで確認
$ export JAVA_HOME=`/usr/libexec/java_home -v 9` $ $JAVA_HOME/bin/jshell | JShellへようこそ -- バージョン9-ea | 概要については、次を入力してください: /help intro jshell> /help | Java言語の式、文または宣言を入力します。 | または、次のコマンドのいずれかを入力します: | /list [<name or id>|-all|-start] | 入力したソースをリストします | /edit <name or id> | 名前またはIDで参照されるソース・エントリを編集します | /drop <name or id> | 名前またはIDで参照されるソース・エントリを削除します | /save [-all|-history|-start] <file> | ファイルにスニペット・ソースを保存します。 | /open <file> | ソースの入力としてファイルを開きます | /vars [<name or id>|-all|-start] | 宣言された変数およびその値をリストします | /methods [<name or id>|-all|-start] | 宣言されたメソッドおよびその署名をリストします | /types [<name or id>|-all|-start] | 宣言された型をリストします | /imports | インポートされたアイテムをリストします | /exit | exit jshell | /env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ... | view or change the evaluation context | /reset | reset jshell | /reload [-restore] [-quiet] | リセットして関連する履歴をリプレイします -- 現在または以前(-restore) | /history | 入力した内容の履歴 | /help [<command>|<subject>] | jshellに関する情報を取得します | /set editor|start|feedback|mode|prompt|truncation|format ... | jshell構成情報を設定します | /? [<command>|<subject>] | jshellに関する情報を取得します | /! | 最後のスニペットを再実行します | /<id> | IDでスニペットを再実行します | /-<n> | n回前のスニペットを再実行します | | 詳細は、'/help'の後にコマンドまたはサブジェクトの名前を続けて入力してください。 | たとえば、'/help /list'または'/help intro'などです。サブジェクト: | intro | jshellツールの概要 | shortcuts | ショートカットの説明 | context | the evaluation context options for /env /reload and /reset jshell> System.out.println("Hello World") Hello World jshell> List<String> cities = new ArrayList<String>(); cities ==> [] jshell> cities.add("東京"); $3 ==> true jshell> cities.add("大阪"); $4 ==> true jshell> cities.add("名古屋"); $5 ==> true jshell> cities cities ==> [東京, 大阪, 名古屋] jshell> cities.forEach((final String city) -> System.out.println(city)); 東京 大阪 名古屋 jshell> cities.parallelStream().forEach(System.out::println); 大阪 名古屋 東京
思ってたよりはいい感じ! いちいちコンパイルをしなくても対話形式で返してくれるので、 ちょっとライブラリのサンプルを試したいときには良さそうです
参考
JShell - Java 9 interpreter (REPL) - Getting Started and Examples