Project JigsawもついにJava9のメインラインに統合され、そろそろ試してみたくなるころ合いになってきました。
とはいえ、JVMを複数入れるとJAVA_HOMEの設定とか色々面倒。でも、安心してください。現代にはDockerがあるんです!
というわけで、Dockerを使ってJava9のEA版を安全かつサクッと試します。
インストール
$ docker run marvambass/oracle-java9 java -version
java version "9-ea"
Java(TM) SE Runtime Environment (build 9-ea+130)
Java HotSpot(TM) 64-Bit Server VM (build 9-ea+130, mixed mode)
以上。個別インストールは不要でDockerコマンドを叩くだけです。ね、簡単でしょ?
こういう複数バージョンの混在がDockerの登場で各段と楽になったので、ベータ版の動作確認とかにはすごく便利ですね。
Hello Worldのコンパイルと実行
バージョンだけ確認できてもつまらないので、ふつうにHello Worldをビルドして実行してみましょう。
ソースコードの作成とクラスパスの出力はとりあえずカレントディレクトリで実施することにします。
ソースの作成
$ cat > Main.java
public class Main {
public static void main(String[] args){
System.out.println("Hello java9 on Docker");
}
}
$ ls Main.java
Main.java
コンパイル
$ docker run -v `pwd`:/tmp -w "/tmp" marvambass/oracle-java9 javac Main.java
$ ls -l Main.*
-rw-r--r-- 1 koduki 197609 423 9月 6 03:47 Main.class
-rw-r--r-- 1 koduki 197609 117 9月 6 03:47 Main.java
実行
$ docker run -v `pwd`:/tmp -w "/tmp" marvambass/oracle-java9 java Main
Hello java9 on Docker
特筆することは無いですが、あえて言えば -w を付けないとWORKDIRが"/"になるので注意することですかね。
JShellを実行しよう
Java9から入ったREPLであるJShellも使えます。
$ docker run -it marvambass/oracle-java9 jshell
Sep 05, 2016 6:52:03 PM java.util.prefs.FileSystemPreferences$1 run
INFO: Created user preferences directory.
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
jshell> System.out.println("Hello JShell!")
Hello JShell!
jshell>
jshellのおかげで簡単な動作確認はこちらで済ませれそうですね。いちいち、NetBeansやEclipseを起動しなくて良いのは手軽でGood!
まとめ
Java9を試したいけど、環境は汚したくない! って人向けの記事でした。Windowsで実施してますが、Dockerですし環境には依存しないでしょう。
今度は目玉のモジュール機能とかを試してみたいと思います。
それではHappy Hacking!