マジセミドライブ
ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。
OSS情報
2020.01.01
【OSS情報アーカイブ】OpenJDK


※当記事に記載されている情報は、古くなっている場合があります。オフィシャルサイトで最新情報をご確認ください。
コンテンツ
「OpenJDK」とは
概要
OpenJDK(Open Java Development Kit)とは、JDK(Java Development Kit)のオープンソース実装です。OpenJDKは「Javaランタイムエディション」および「Java Development Kit」の起点を表すコミュニティアップストリームプロジェクトになっています。
経緯
OpenJDKの初期バージョンは、Sun Microsystemsが開発した結果として、2007年にリリースされました。
Java公式リファレンス実装
OpenJDKは「SE7以降のJava Standard Edition」の公式リファレンス実装です。
OpenJDKは定義以上のものとして「OpenJDK=Java」であり、Javaの他のすべてのバージョンが作成される基礎を形成します。
オフィシャルサイト情報
■オフィシャルサイト
■GitHub
■主要開発元
OpenJDKは、OpenJDKコミュニティが中心となり開発が進められています。
■ライセンス情報
OpenJDKのライセンスは「The GNU General Public License (GPL) Version 2」です。
詳細について、こちらを参照ください。
→github.com →openjdk/jdk →LICENSE
■インストール
Java言語
■概要
Java言語とは、汎用のクロスプラットフォーム言語です。
当時のソフトウェア開発における多くの問題を解決しました。
・オペレーティングシステムからの完全な抽象化
・どの環境でも実行可能なアプローチによる移植性
・単純化されたメモリ管理 など
■経緯
Java言語は、1990年代半ばにSun Microsystems社のJames Gosling氏によって開発されました。
その後、Oracleによって買収されています。
■人気言語に成長
Javaは革新的な言語として「独立系ソフトウェアベンダー」「企業内開発セクション」「オープンソースコミュニティ」などの間で非常に人気になりました。
ちなみに2020年時点において、GitHubの人気言語レポートによると、「Java」は、「JavaScript」と「Python」に次いで、世界で3番目に人気のあるプログラミング言語としてリストされています。
■オープンソース化
2006年、Sun Microsystems社は、Javaのオープンソース化を決定しました。
そして、2006年11月に、Javaのソース コードの大部分がGPLの下でリリースされました。
この最初のリリースには、Java仮想マシン「JVM」+Javaコンパイラ「javac」が含まれていました。
Java開発者は、これらのコンポーネントを組み合わせることで、完全に無料のオープンソースJavaプラットフォームに対してコードを記述し、実行できるようになりました。
2007年までに、少数のプロプライエタリコードを除いたすべてのコードがコミュニティにリリースされました。
■Javaコンポーネント① Java仮想マシン(JVM)
仮想マシン
Java仮想マシン(JVM:Java Virtual Machine)は、Javaバイトコードを実行する仮想マシンです。
Java仮想マシンはJavaソースコードをそのまま認識しません。
そのため、「Javaソースコードファイル(*.java)」をコンパイルして、JVMが理解するバイトコードである「Javaクラスファイル(*.class)」を用意する必要があります。
ポータブル言語
Java仮想マシンは、各種実行環境(Windows、Linux、macOS)ごとの実装があります。
1つのJavaソースコードから作成されたバイトコードは、各種実行環境で動作し、同じ結果を得ることができます。
このポータブル性が、Java言語の大きな魅力となっています。
■Javaコンポーネント② Javaランタイム環境(JRE)
動作環境
「Javaランタイム環境(JRE:Java Runtime Environment)」は、Javaプログラミング言語で記述されたアプレットおよびアプリケーションを実行するための「ライブラリ」「Java仮想マシン」「その他必要コンポーネント」を提供します。
しかし、Javaランタイム環境には、アプレットやアプリケーションを開発するためのコンパイラやデバッガなどのツール(ユーティリティ)は含まれていません。
デプロイメントテクノロジー
Javaランタイム環境には、2つの主要なデプロイメントテクノロジーが含まれています。
①Javaプラグイン—主要ブラウザでアプレットを実行
②Java Web Start—ネットワーク経由でスタンドアロンアプリケーションをデプロイ
これらは、エンタープライズソフトウェア開発環境「J2EE(Java 2 Platform, Enterprise Edition)」のテクノロジー基盤でもあります。
JDKに統合
「Javaランタイム環境(JRE)」は、Javaを実行するために必要な「Java Development Kit(JDK)の一部コンポーネント」です。
以前、JREは、JDKから個別にダウンロードしていました。
Java 11以降、JREは個別のエンティティではなく、JDKの一部として統合されました。
そのため、JRE単体でのダウンロードはできなくなっています。
■Javaコンポーネント③ Java Development Kit(JDK)
JREのスーパーセット
Java Development Kit(JDK)は「JREのスーパーセット」であり、JREのすべてに加えて、アプレットやアプリケーションの開発に必要なコンパイラやデバッガなどのツールが含まれています。
Java SEプラットフォーム仕様の実装
Java Development Kit(JDK)は、さまざまなベンダーやオープンソースコミュニティなどによる「Java SEプラットフォーム仕様の実装」です。
Java互換性テスト
多くのJDKが存在していますが、正式にJDKと呼ばれるためには、バイナリがそのリリースの「Java互換性キット(JCK)」に合格している必要があります。
これは、技術互換性キット(TCK) のコレクションであり、仕様の実装が期待通りに動作することを確認するために各Java仕様要求をテストします。
Java SE(Oracle JDK)
■概要
「Java SE」とは、Oracle社が提供するJDK「Java言語用開発ツールキット」です。
「OpenJDK」に対して、通称「Oracle JDK」と呼ばれます。
Oracle JDKには、コンポーネントとして多くの開発用ツールが含まれています。
→oracle.com →java →technologies →Java SE at a Glance
■経緯
当初のJava開発キットは、Sun Microsystems社が開発した「SUN JDK」を指していました。
2010年にOracle社がSun Microsystems社を買収した後、改名されています。
比較:「Oracle JDK(Java SE)」vs「OpenJDK」
開発元比較
■Oracle JDK
「Oracle JDK」は Oracle社によって開発されています。
■OpenJDK
「OpenJDK」は、「Oracle」「OpenJDK」「Javaコミュニティ」などが中心となる「OpenJDK開発コミュニティ」って開発しています。
また、次のグローバル企業も開発に積極的に参加しています。
・Red Hat
・Azul Systems
・IBM
・Apple Inc.
・SAP AG など
ライセンス比較
■Oracle JDK
商用ライセンス
Oracle JDKは「Oracle Binary Code License Agreement」で商用ライセンスされています。
アップデートに商用ライセンスが必要
2019年1月以降、「Oracle JDKソフトウェアアップデート」を入手するためには、Oracle社から商用ライセンスを購入する必要があるとされています。
→oracle.com →java →technologies →Oracle Java SE Support Roadmap(Updated April 2, 2021)
本番環境での無料使用は不可の見込み
Oracle社は『商用ライセンスなしで商業本番環境での使用はできないだろう』と発表しています。
>新しいライセンスでは、個人使用や開発使用などの特定の使用が無料で許可されますが、
>以前のOracle Javaライセンスで許可されたその他の使用は利用できなくなる可能性があります。
→java.com →download →release_notice →Oracle Java SE 8 Release Updates
■OpenJDK
完全オープンソース
OpenJDKは、一部の連結用コンポーネント部分を除き、「GNU一般公衆利用許諾契約書(GNU GPL Ver2)」でライセンスされています。
つまり、OpenJDKは「完全なオープンソースJava」として、自由に無料で使用できます。
Oracle JDKの優れた代替製品
OpenJDKは、まったく制限なく商用ソフトウェアプロジェクトで使用できます。
この点で、「OpenJDK」は「Oracle JDKの優れた代替製品」になり得ます。
人気比較
■以前:「Oracle JDK」が人気
以前は、「Android Studio」や「IntelliJ IDEA」などの開発ツールで「Oracle JDK」が好まれて使用されていました。
■最近:「OpenJDK」が人気
最近では、主要な開発ツールで、「Oracle JDK」から「OpenJDKベースのJetBrainsビルド」に切り替えられています。
また、主要Linuxディストリビューション(Fedora、Ubuntu、Red Hat Enterprise Linux)などでは、デフォルトのJava開発環境として「OpenJDK」が提供されています。
リリースサイクル比較
■Oracle JDK
「Oracle JDK」は、3年ごとにリリースしています。
そのリリースに対して長期サポートを提供します。
■OpenJDK
OpenJDKは、半年ごとにリリースされます。
次のバージョンがリリースされるまでの間は、リリースへの変更のみをサポートします。
ビルドプロセス比較
「Oracle JDKのビルドプロセス」は「OpenJDKのビルドプロセス」に基づいているため、この2つの間に技術的な差異はありません。
OpenJDKで、「従来では商用機能とされていた機能」を利用できるようになりました。
・Flight Recorder
・Java Mission Control
・アプリケーションクラスデータ共有
・Zガベージコレクタ など
したがって、Java 11以降では、両者のビルドは本質的に同一です。
参考サイト
→openlogic.com →What is OpenJDK?
→baeldung.com →Differences Between Oracle JDK and OpenJDK
→openlogic.com →OpenJDK vs. Oracle JDK: What the Java Experts Say
→openlogic.com →Latest OpenJDK Guide: Migration, Support, Expert Advice
→diarium.usal.es →Understanding Java Components like JVM, JRE, JDK and OpenJDK
→helenjoscott.com →The Java SE Ecosystem
この記事のタグ一覧
フリーワード検索
カテゴリー一覧
アクセスランキング
- 🏆ランク1位🏆
【無料で使える】「 OCR 」ツールまとめ - 🏆ランク2位🏆
【無料で使える】「 ドキュメント管理 」ツールまとめ - 🏆ランク3位🏆
【ツール紹介】無料オープンソース「 ビデオ監視 ツール 」まとめ3選 - 🏆ランク4位🏆
【OSS情報】AIネイティブ埋め込みデータベース「 Chroma 」 - 🏆ランク5位🏆
【無料で使える】「 バックアップ 」ツールまとめ - 🏆ランク6位🏆
【OSS情報アーカイブ】Odoo - 🏆ランク7位🏆
【OSS情報アーカイブ】NW.js - 🏆ランク8位🏆
【無料で使える】「 プロジェクト管理 」ツールまとめ - 🏆ランク9位🏆
【ChatGPTプラグイン探訪】「 WebPilot 」〜Web検索プラグイン〜 - 🏆ランク10位🏆
【無料で使える】「 暗号化 」ツールまとめ