2
4
Java開発ツールキットは数種類ありますが、利用するにあたり比較検討したく違いを知りたいです
機能の違いや、値段の違い、シェアの違い、開発し易さの違い、など知りたいです
Oracle JDK
Oracle OpenJDK
Red Hat build of OpenJDK
Amazon Corretto
Microsoft Build of OpenJDK
Eclipse Temurin (Adoptium)
例:
■Oracle JDKの場合
・サポート費用は他のJDKよりかは比較的高価なサポート費用となる
・用途長期的に動かすシステムを構築したい時
・無期限サポートを受けたい時
・実績の多いJDKを採用したい
・ドキュメント豊富
気になる質問をクリップする
クリップした質問は、後からいつでもMYページで確認できます。
またクリップした質問に回答があった際、通知やメールを受け取ることができます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
回答5件
#1
総合スコア2345
投稿2024/08/15 13:05
このテーマについては、やや古いですが、『みんなのJava OpenJDKから始まる大変革期!』というムックの第2章「第2章 JDKに関する疑問と不安解消!JDKディストリビューション徹底解説」が詳しいです。
https://gihyo.jp/book/2020/978-4-297-11199-1
またこの章の著者の方がサポートページ的にいろいろまとめておられるので、そちらも参考になるかと思います。
#2
総合スコア79
投稿2024/08/15 13:08
有り難うございます
内容確認させて頂きます
大変助かります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#3
総合スコア4041
投稿2024/08/16 00:09
編集2024/08/16 00:16同様の疑問を持たれたかたがいらっしゃいますね。こちらもフォローしておくと早期解決するかもしれません。
.
わたしは、この記事は興味深く読みました。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#4
総合スコア34
投稿2024/08/21 11:27
出遅れました。@neko_the_shadow さんに挙げていただいた記事の作者です。
書籍は2020年初め時点の情報で今となっては若干古いところもありますので、Qiita記事で最新の内容は確認ください。
といってもリンク集みたいな感じなので、いくつか補足しますね。
基本的には利用する環境や製品でサポートされるJDKを選択いただくのがオススメです。
特に有名どころのパブリッククラウドなら、JDKサポートがバンドルされています。
- AWS→Amazon Corretto
- Azure→MS Build of OpenJDK
- Google Cloud→Eclipse Temurin
- Oracle Cloud→Oracle JDK
といった感じです。
また、RHELを使うのであれば、そちらにRH build of OpenJDKやEclipse Temurinのサポートも含まれます。
私見ですが、Oracle JDKの有償サポートはOracle CloudやOracle製品(WebLogicなど)以外で使うのは難しくなったと感じます。以前はサーバ用途ならコア数、クライアント用ならPCおよびユーザ数ベースのサブスクリプションだったのですが、今はOracle Java SE Universal Subscriptionとなり、従業員数ベースでの課金となったためです。
Oracle JDKもOpenJDKベースであり、特に今(JDK 11以降)となっては大きな差異はありません。
OpenJDKの日本語での有償サポートを検討するなら、ひとまず無償版のEclipse Temurinから始めて、必要になったらRed HatのOpenJDK専用サブスクリプションを利用するのもよいかもしれませんね。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
#5
総合スコア34
投稿2024/08/24 14:39
編集2024/08/24 14:52もう不要かもしれませんが、当初のご質問に挙げていただいた軸をもとに、もう少し追記しておきますね。
機能の違い
先に記載した通り今(JDK 11以降)となっては大きな差異はありません。
もしJDK 8を使われるようでしたら、Oracle JDK 8までは特にクライアント用の独自機能や差異があります。詳細は「Oracle JDK 8にあってOpenJDKにない機能 #Java - Qiita」にまとめていますので参照ください。
JDK 11以降では、通常それほど気にする必要はないはずですが、例としていくつか差異を挙げてみます。
- Oracle JDKにはUsage Logging (Usage Tracker) があるが、他のJDKにはない。
- Red Hatが開発してOpenJDKに寄贈したShenandoah GCはOracle JDKやOracle OpenJDKでは無効化されている。
他にも各ベンダーが新バージョンの機能を独自バックポートなどして差異があるケースもありますが、バージョンが新しくなるに従い解消されることも多いです。
なお、厳密には機能とは言えないですが、ルート証明書を含む「cacerts」は各ベンダーによって違うことが多いため、SSL/TLS通信時には注意が必要です。
値段の違い
有償サポートを利用する場合の話かと思いますが、先に記載したように、各種クラウドのサポートプランや製品によって含まれることがあります。
言い換えると、追加費用なくサポート (パッチの入手やテクニカルサポートなど) を受けられることもあるため、それらを優先したほうがよいでしょう。
シェアの違い
これはなかなか難しく、各種アンケートや調査方法によって大きく異なったりします。
ただ、Oracle JDKが2019年のライセンス変更以降ではシェアを落としてきており、他のJDK(特にEclipse TemurinやAmazon Corretto)の採用が増えてきている傾向はあるようです。
直近では「2024年 Javaエコシステムの現状レポート | New Relic」あたりが参考になるかもしれませんが、MS Build of OpenJDKが含まれていなかったりするので。New Relicを採用しているシステムに偏りがある可能性もありそうです。
開発し易さの違い
何をもって開発しやすいと見做すかによりますが、どれも大差はないかと思います。
例えばOracle OpenJDKにはインストーラがないため、直接ダウンロードして利用する際には初学者がPATHを手動で設定するなどでハードルが若干高いのかもしれません。
ただ、IntelliJ IDEAでは各種JDKをダウンロード・設定できる機能もありますし、WinGetなどでも多くのJDKをダウンロード・インストールできるため、多くのケースで問題になることはないでしょう。
以上、参考になれば幸いです。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。