しゃのんあどべんとかれんだー 11日目 (Java にも REPL がくるー? #2) 匿名 匿名 この記事は、しゃのんあどべんとかれんだー 11 日目の記事です。 ![Duke](http://1.bp.blogspot.com/-8EVXY0_sOZE/VopxGv-D3FI/AAAAAAAAAVQ/_9dXMNbQ7tY/s200/duke.png) どうも、munepom (`@__munepom__`) です。 12月25日ですが、あどべんとかれんだー埋めは年内いっぱい頑張りますw Java で REPL (Read Evaluate Print Loop) ができるようになる方法についてのおはなしについて、第二弾です。 # jshell コマンドで、JShell 試しましょ! @bitter_fox さんからメッセージをいただけましたので、早速、JDK 9 ea の最新版をダウンロードして、jshell コマンド試してみました。 (情報ありがとうございます!) ものすごく簡単に起動、確認できますね! 1. まずは、ご自身の環境に合った [JDK 9 ea](https://jdk9.java.net/download/) をダウンロードしてください。 2. ダウンロードしたら、展開して適当なパスに置きます。 3. JDK_HOME/bin/jshell を起動しましょー。 # JShell を試す というわけで、今回は、JDK 9 ea を CentOS 6 で使ってみました。 1. 適当なディレクトリに、JDK9 ea をダウンロードします。 $ wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-securebackup-cookie" http://www.java.net/download/jdk9/archive/99/binaries/jdk-9-ea+99_linux-x64_bin.tar.gz 2. 解凍します。 $ tar xf jdk-9-ea+99_linux-x64_bin.tar.gz 3. jshell コマンドを起動します。 $ ./jdk-9/bin/jshell ``` | Welcome to JShell -- Version 9-ea | Type /help for help -> ``` のような画面が出れば、起動成功です! では、再び Hello World を! ``` -> System.out.println("Hello World") Hello World ``` いけますね! では、再びシャノンのホームページの HTML を取ってきましょ! ``` -> import java.util.stream.Collectors -> try(BufferedReader reader = new BufferedReader(new InputStreamReader(new URL("http://shanon.co.jp/").openStream()))){ >> reader.lines().peek(System.out::println).collect(Collectors.joining("\n")); >> } ... ``` おぉ、いける! (記事訂正します。collect 処理さえ行えれば、Stream の peek メソッドが機能することを確認できました。) (echo で出力したコマンドも実行できましたが、CentOS 6 でもコンソールが固まってしまいました。。。原因不明です。) その他、気づいた点です。 `/コマンド名` の省略形が使えなくなっていますね。。。 バージョンにより動作が異なる可能性があるので、/help で、どのようなコマンドが使えるか確認してください。 コマンド履歴は、/history で確認できました。 満足したら、/exit で exit しましょう。 あと、jps でプロセスを確認すると、RemoteAgent なるプロセスも動作していることが分かりました。 ``` $ jps 3553 RemoteAgent 3636 Jps 3503 JShellTool ``` 時間ができたら、どんなプロセスか調査してみたいです。 正式版リリースが楽しみですね♪ レッツ Enjoy! (・ω・)ノ Tweet Share Share Share Share