JAVA

Java SEとは?JDK・JRE・JVMの違いとOracle Java/OpenJDKのライセンスを最新版で解説

Java SE(Standard Edition)とは、Java言語でアプリケーションを開発・実行するための標準仕様であり、言語そのものと標準ライブラリ(API)をまとめたプラットフォームです。Javaを使ううえで混同しやすいのが、JDK・JRE・JVMという3つの言葉と、「Oracleのお金がかかるJava」と「無償で使えるJava(OpenJDK)」の関係です。この記事では、Java SEの意味から、JDK・JRE・JVMの違いを比較表で整理し、Oracle JDKとOpenJDKの違い、最新のLTS(Java 21・25)、そして近年大きく変わったOracle Java SEのライセンスまで、最新情報でわかりやすく解説します。

まとめ:Java SEとJDK・JRE・JVMの要点

混同しやすい要点を先に押さえます。

  • Java SE:Javaの標準仕様。言語仕様と標準API(コアライブラリ)をまとめた基盤で、デスクトップからサーバーまで幅広く使われます。
  • JDK:開発キット。コンパイラ(javac)などの開発ツールに実行環境を加えたもので、開発者はこれをインストールします。
  • JRE:実行環境。JVMと標準ライブラリの組で、アプリを動かすだけに使う部分です。ただしJava 11以降は単体配布がなくなり、実行にもJDK(または最小化ランタイム)を使うのが主流になりました。
  • JVM:バイトコードを実行する仮想マシン。これがあるため、Javaは「一度書けば、どこでも動く(Write Once, Run Anywhere)」を実現します。
  • Oracle JDKとOpenJDK:中身はほぼ同等。違いは配布元・ライセンス・サポートです。無償で使うなら OpenJDK 系(Eclipse Temurin、Amazon Corretto など)が定番です。
  • ライセンス(要注意):Oracle JDK 17・21・25 は NFTC により商用・本番でも一定期間は無償。一方、サポートや旧バージョン利用には「Java SE Universal Subscription(従業員数ベースの課金)」が必要です。条件は変わりやすいため、最新は必ずOracle公式で確認してください。

以下で、定義・違い・最新バージョン・ライセンスを順に詳しく見ていきます。

Java SEの定義と位置づけ(標準仕様としての役割)

Java SEは、Javaプラットフォームの「標準版」にあたる仕様です。言語の文法そのものに加え、文字列・コレクション・入出力・ネットワーク・並行処理といった標準API(コアライブラリ)が定義されており、これがJavaアプリの土台になります。プラットフォームに依存せず、Windows・macOS・LinuxなどOSを問わず同じコードが動くのが最大の特徴です。なお、サーバー向けに機能を拡張した仕様は、かつてJava EEと呼ばれ、現在はJakarta EEとしてEclipse Foundationへ移管されています。Java SEはその中核となる、最も基本のプラットフォームです。

JDK・JRE・JVMの違いとは(比較表で整理)

この3つは役割が重なって見えますが、包含関係で捉えると分かりやすくなります。大きい順に「JDK ⊃ JRE ⊃ JVM」で、JDKの中にJRE相当の実行環境があり、その中核にJVMがあります。

名称 役割 主に含むもの 使う場面
Java SE 標準仕様・基盤 言語仕様+標準API 実体でなく仕様
JDK 開発キット javac等のツール+実行環境 開発・ビルド
JRE 実行環境 JVM+標準ライブラリ 実行のみ(現在は縮小)
JVM バイトコード実行 仮想マシン本体 実行の中核

JVMは、コンパイル後のバイトコードを各OS向けに解釈・実行し、メモリ管理やガベージコレクションも担います。JREはそのJVMに標準ライブラリを足した「動かすための一式」、JDKはさらにコンパイラやデバッガなど「作るための道具」を足したものです。実務では、開発者はJDKを入れれば実行までできるため、いまはJDKを基準に考えれば足ります。

JREは別途必要か(Java 11以降の変更点)

かつてはエンドユーザー向けに「JREだけ」を配布する形が一般的でしたが、Java 11以降、単体のJRE配布は行われなくなりました。現在は、実行だけの環境が必要な場合でもJDKを使うか、JDKに付属する jlink ツールでアプリに必要な分だけを取り出した最小ランタイムを作って配布するのが主流です。「JREを別でダウンロードする」という情報は古い前提に基づくことがあるため、利用するバージョンの配布形態を確認してください。

Oracle JDKとOpenJDK(無償のJava)の違い

「Oracleのお金がかかるJava」と「無償のJava」は、別物の言語ではありません。OpenJDK はJavaのオープンソース実装(参照実装)で、Java本体の開発はここで進みます。Oracleが配布する Oracle JDK は、そのOpenJDKをもとにOracleがビルド・サポートする製品で、機能・中身はほぼ同等です。違いは「配布元・ライセンス・サポート体制」にあります。無償で使いたい場合は、OpenJDKをベースにした各社の無償ディストリビューション——Eclipse Temurin(Adoptium)、Amazon Corretto、Microsoft Build of OpenJDK など——を選ぶのが一般的です。これらは商用・本番でも無償で使え、長期サポートを提供するものもあります。

Javaの最新バージョンとサポート期間(LTS)

Javaは2017年のJava 9以降、半年ごとに新しいフィーチャーリリースが出ます。そのうち長期サポート対象のLTS(Long-Term Support)が、企業利用の基準になります。LTSはJava 8・11・17・21・25で、Java 21は2023年9月Java 25は2025年9月にリリースされました。OracleはLTSを今後2年ごとに出す方針で、次のLTSはJava 29(2027年予定)とされています。各LTSには長期のサポート期間が設定されますが(例としてJava 21はおおむね2031年頃まで)、サポート年限はOracleと各OpenJDKディストリビューションで異なります。移行の全体像はJava 21からJava 25へのアップデート概要も参考にしてください。なお、最新の対応版やサポート期限は更新されるため、導入時は公式のサポートロードマップで確認することをおすすめします。

Oracle Java SEのライセンス(無償条件と従業員数ベースの課金)

Oracle Java SEのライセンスは近年大きく変わり、古い「商用=有料・個人=無料」という説明は現状に合いません。ポイントは2つです。第一に、Oracle JDK 17・21・25 は NFTC(No-Fee Terms and Conditions) のもとで配布され、商用・本番利用を含めて一定期間(次のLTSリリースの1年後までなどの条件)は無償で使えます。第二に、その無償期間を過ぎた版や、Oracleの公式サポート、旧バージョン(Java 8・11など)を使う場合には、2023年に導入された Java SE Universal Subscription が必要になります。これは利用本数ではなく会社の従業員数に基づく課金で、規模によっては費用が大きくなりやすい点に注意してください。コストやサブスクリプションを避けたい場合は、前述のOpenJDK系ディストリビューションへ切り替えるのが現実的な選択肢です。ライセンス条件・対象バージョン・価格は改定されることがあるため、最終的な判断は必ずOracle公式のライセンスFAQとサポートロードマップで確認してください。

よくある質問

Java SEとは何ですか?

Javaの標準仕様(Standard Edition)のことで、言語仕様と標準API(コアライブラリ)をまとめたプラットフォームです。OSに依存せず同じコードが動くのが特徴で、デスクトップアプリからサーバーサイドまで幅広く使われます。サーバー向けに拡張した仕様は現在Jakarta EEと呼ばれ、Java SEはその土台となる中核部分です。

JDK・JRE・JVMの違いは何ですか?

包含関係で捉えると整理できます。JVMはバイトコードを実行する仮想マシンで、JREはそのJVMに標準ライブラリを足した「実行のための一式」、JDKはさらにコンパイラ(javac)などの開発ツールを足した「開発のための一式」です。開発者はJDKを入れれば開発から実行までできます。なおJava 11以降は単体JREの配布がなくなり、実行にもJDKを使うのが一般的になりました。

Oracle JDKとOpenJDK(無償のJava)はどう違いますか?

別の言語ではなく、中身はほぼ同じです。OpenJDKがJavaのオープンソース実装で、Oracle JDKはそれをもとにOracleが配布・サポートする製品です。違いは配布元・ライセンス・サポートにあります。無償で使いたいなら、OpenJDKベースの Eclipse Temurin や Amazon Corretto などのディストリビューションが定番で、商用・本番でも無償で利用できます。

Javaの最新バージョン(LTS)は何ですか?

長期サポート対象のLTSは Java 8・11・17・21・25 です。Java 21は2023年9月、Java 25は2025年9月にリリースされました。半年ごとに新バージョンが出る一方、企業はLTSを基準に選ぶのが一般的です。次のLTSはJava 29(2027年予定)とされています。最新版とサポート期限は更新されるため、公式のサポートロードマップで確認してください。

Oracle Java SEは有料ですか、無料ですか?

使い方とバージョンによります。Oracle JDK 17・21・25 は NFTC のもとで、商用・本番でも一定期間は無償で使えます。ただし、その無償期間を過ぎた版やOracleの公式サポート、旧バージョン(Java 8・11など)の利用には、従業員数ベースで課金される Java SE Universal Subscription が必要です。費用を抑えたい場合はOpenJDK系の無償ディストリビューションを使う選択が一般的です。条件は変わりやすいため、最新はOracle公式で必ず確認してください。

JREだけをダウンロードしたいのですが可能ですか?

現在は、単体のJREを配布する形は基本的になくなりました。Java 11以降は、実行だけの環境が必要でもJDKを使うか、JDK付属の jlink で必要な機能だけを取り出した最小ランタイムを作って配布するのが標準です。古い手順では「JREを別途インストール」と書かれていることがありますが、利用するバージョンの配布形態を確認してください。

関連記事

資料請求

RELATED POSTS 関連記事