質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.39%
Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java Persistence API

Java Persistance Acchitecture API (JPA) はJavaオブジェクト・クラスとリレーショナルデータベースとの間のデータへのアクセス、管理、維持を行う為のJava用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

意見交換

クローズ

5回答

1903閲覧

JDK(Java開発ツールキット)について

raccoondog

総合スコア79

Java Development Kit

Java Development Kit(JDK)とは、Javaでの開発のために要するソフトウェアをまとめたパッケージです。コンパイラの「Javac」やクラスライブラリの「jar」など、Java開発者向けツールが含まれています。

Java EE

Java EE(Java Enterprise Edition)はJavaベースのテクノロジーとその相互運用の仕様をまとめたものです。サーバとクライアントのアーキテクチャを規定し、特定アプリケーションのクラス用に定義されたテクノロジー設定のプロファイルを使用します。

Java Persistence API

Java Persistance Acchitecture API (JPA) はJavaオブジェクト・クラスとリレーショナルデータベースとの間のデータへのアクセス、管理、維持を行う為のJava用のフレームワークです。

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

2グッド

4クリップ

投稿2024/08/15 00:01

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を採用したい
・ドキュメント豊富

yamadamn, swordone👍を押しています

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

回答5

#1

neko_the_shadow

総合スコア2345

投稿2024/08/15 13:05

このテーマについては、やや古いですが、『みんなのJava OpenJDKから始まる大変革期!』というムックの第2章「第2章 JDKに関する疑問と不安解消!JDKディストリビューション徹底解説」が詳しいです。

https://gihyo.jp/book/2020/978-4-297-11199-1

またこの章の著者の方がサポートページ的にいろいろまとめておられるので、そちらも参考になるかと思います。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#2

raccoondog

総合スコア79

投稿2024/08/15 13:08

有り難うございます
内容確認させて頂きます

大変助かります。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#3

shiketa

総合スコア4036

投稿2024/08/16 00:09

編集2024/08/16 00:16

同様の疑問を持たれたかたがいらっしゃいますね。こちらもフォローしておくと早期解決するかもしれません。

.

わたしは、この記事は興味深く読みました。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

#4

yamadamn

総合スコア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

yamadamn

総合スコア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をダウンロード・インストールできるため、多くのケースで問題になることはないでしょう。


以上、参考になれば幸いです。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

最新の回答から1ヶ月経過したため この意見交換はクローズされました

意見をやりとりしたい話題がある場合は質問してみましょう!

質問する

関連した質問