LoginSignup
8
6

More than 5 years have passed since last update.

Dockerで色んなJDKを試す

Posted at

9月25日にJDK 11がリリースされました。リリースサイクルも変わり、今後は半年サイクルで新しいバージョンが出てきます。「Javaが有償化される」という間違った情報が一人歩きしているようですが…それは誤った情報なので、以下辺りをご確認ください。

異なるJDK、異なるバージョンを触る機会が今後増えそうですが、それぞれインストールしたり、設定したりするのは大変です。ちなみに今自分がメインで使っているPCは、OpenJDK 11を入れていますが、binのPathやJAVA_HOMEはOracle JDK 8のままだったりします(^^;

そんなときは、やはりDockerがいいのかな、ということで、Docker HubにあるJDKを調べて実際に動かしてみました。

動作確認に使ったコードは以下です。環境はDocker Comminitu Edition 18.0.6.1-ce-win73で確認しました。

HelloWorld.java
public class HelloWorld{
   public static void main(String[] args){
     System.out.println("Hello World!!");
     System.out.println(System.getProperty("java.version"));
     System.out.println(System.getProperty("java.vendor"));
     System.out.println(System.getProperty("java.vm.name"));
   }
}

なお、一通り試した後に気づいたのですが、「最適な Java の Docker イメージを選びたい」でそれぞれの特徴など細かくまとまっています。本記事は単純に実行方法と結果のみまとめています。実行で指定したバージョンは必ずしも最新ではないので、詳細はDocker Hubのリンク先をご確認ください。

OpenJDK

docker run -v C:\Docker:/tmp -w /tmp openjdk:11-jdk javac HelloWorld.java
docker run -v C:\Docker:/tmp -w /tmp openjdk:11-jdk java HelloWorld
Hello World!!
11
Oracle Corporation
OpenJDK 64-Bit Server VM

以下のような注意点があるようです。
DockerコミュニティがメンテしているOpenJDKイメージを使って遭遇した問題

AdoptOpenJDK

docker run -v C:\Docker:/tmp -w /tmp  adoptopenjdk/openjdk11:latest javac HelloWorld.java
docker run -v C:\Docker:/tmp -w /tmp  adoptopenjdk/openjdk11:latest java HelloWorld
Hello World!!
11
Oracle Corporation
OpenJDK 64-Bit Server VM

Zulu

docker run -v C:\Docker:/tmp -w /tmp  azul/zulu-openjdk javac HelloWorld.java
docker run -v C:\Docker:/tmp -w /tmp  azul/zulu-openjdk java HelloWorld
Hello World!!
1.8.0_181
Azul Systems, Inc.
OpenJDK 64-Bit Server VM

IBM

docker run -v C:\Docker:/tmp -w /tmp ibmjava:sdk-alpine javac HelloWorld.java
docker run -v C:\Docker:/tmp -w /tmp ibmjava:sdk-alpine java HelloWorld
Hello World!!
1.8.0_181
IBM Corporation
IBM J9 VM

おまけ

Oracle JDKについては、JREがDocker Storeにあって、イメージが利用できるようです。9以降ないのかな…?

DockerはMicrosoft Learnが勉強になりました。

8
6
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
8
6