マジセミドライブ

ウェビナー関連のニュースやITサービス&ツールの最新情報を随時配信します。

OSS情報

2020.01.01

【OSS情報アーカイブ】OpenJDK

【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の他のすべてのバージョンが作成される基礎を形成します。

オフィシャルサイト情報

■オフィシャルサイト

→openjdk.java.net

■GitHub

→github.com →openjdk/jdk

■主要開発元

OpenJDKは、OpenJDKコミュニティが中心となり開発が進められています。

■ライセンス情報

OpenJDKのライセンスは「The GNU General Public License (GPL) Version 2」です。

詳細について、こちらを参照ください。
→github.com →openjdk/jdk →LICENSE

■インストール

→openjdk.java.net →install

Java言語

■概要

Java言語とは、汎用のクロスプラットフォーム言語です。

当時のソフトウェア開発における多くの問題を解決しました。
・オペレーティングシステムからの完全な抽象化
・どの環境でも実行可能なアプローチによる移植性
・単純化されたメモリ管理 など

→oracle.com →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

この記事のタグ一覧

おすすめの記事

【ChatGPT探訪】「 無限議論 」〜最強スタンド考察〜🤔

ChatGPT探訪

2024.05.07

【ChatGPT探訪】「 無限議論 」〜最強スタンド考察〜🤔

マジセミSNSに投稿した 【担当者A】の「 無限議論 」〜最強スタンド考察〜💬 を記事化したものです。 ChatGPTに課金していないみなさんにも、 AI同士の議論をお楽しみいただけます👍 ※原稿テキストを放り込むだけで、 ジョジョ風イラストを作成してしまう生成AIがすごくないですか?

【トレンド解説】米国における「 生成AI活用 」最新動向📈

トレンド解説

2024.05.07

【トレンド解説】米国における「 生成AI活用 」最新動向📈

「米国における 生成AI活用 最新動向」について解説しています。生成AIは日本企業にも多くの可能性をもたらし、「デスクワークの効率化」や「業務の自動化推進」に貢献しています。生成AIを理解し、活用することが、グローバルな競争力を高める鍵となります。

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

ウェビナーまとめ

2024.05.15

経営活動に活用できる 原価管理 を実現するには? 〜製造業の現実的な課題に向き合い、現場視点から改善する原価管理手法の必達プロセスをご紹介〜

2024年3月12日に三菱電機ITソリューションズ株式会社とアットストリームパートナーズ合同会社の共催で、組立加工製造業向けのセミナー「なぜか高くなる原価を管理する 不確実性の時代を乗り切るためのコスト戦略とは」が開催されました。本セミナーでは、製造業における原価管理の現状と改善手法について深く掘り下げ、経営活動への具体的な活用方法を提示しました。今回は、その講演の要点をお伝えします。