LoginSignup
58
52

More than 5 years have passed since last update.

Dockerを使ってJava9を超高速に試す

Posted at

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!

参考

58
52
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
58
52