Javaバージョン履歴

本稿ではJavaプラットフォームの基準であるスタンダード版（Java SE）のメジャーバージョン履歴を説明する。Java Cardの仕様はJava SEとは独立してリリースされている。

Java 8まで存在した、エンタープライズ版、マイクロ版はスタンダード版改訂を基準にしそれに後発する時系列でリリースされていた。詳細はそれぞれの項目を参照。

 概要 
Java言語では、JDK1.0以降、標準ライブラリにクラスやパッケージが多数追加されただけでなく、いくつかの変更が行われてきた。J2SE 1.4以降、Java言語の進化は、Java Community Process (JCP)によって管理されてきた。このプロセスでは、Java Specification Requests（JSR）を使用してJavaプラットフォームへの追加や変更を提案・指定している。言語はJava言語仕様書（JLS）によって規定されており、JLSへの変更はJSR 901によって管理されている。

言語の変更に加えて、Javaクラスライブラリにも長年にわたって変更が加えられ、JDK 1.0の数百クラスからJ2SE 5では3,000クラスを超えるまでに成長した。 SwingやJava2Dなどの全く新しいAPIが導入され、オリジナルのJDK 1.0のクラスやメソッドの多くが非推奨となっている。いくつかのプログラムでは、JavaプログラムをJavaプラットフォームのあるバージョンから古いバージョンに変換することができる（例えば、Java 5.0を1.4にバックポートするなど）。

OpenJDK は Java 9 以降は半年ごとに3月と9月にリリースしている。Java 8 と Java 11に加えて、2021年以降は奇数の年の9月にリリースされるもの（Java 17, 21, 25, …）を長期サポート版（LTS）にしている。

OpenJDK の長期サポート版は様々な組織がディストリビューションとして配布していて、詳細は OpenJDK を参照。Java 8 は Oracle JDK と OpenJDK に差があったが、Java 11 以降は差がなく、Oracle JDK は OpenJDK のディストリビューションの1つとなっている。

Oracle JDK は Java 8, 11, 17 に関しては、商用と非商用・開発用でライセンスが異なり、それぞれ個別のサポート期限がある。Oracle JDK 21 以降はその区分はなくなり、リリース後3年間は無償で使用可能なライセンスが存在し、その後5年間は有償契約が必須となる。

 バージョン一覧 
 JDK 1.0 (1996年1月23日) 
Javaプラットフォームの初回バージョンは、ブランド名「Java」プロダクト名「Development Kit」からプロパー名「Java Development Kit」とネーミングされ通称は「JDK」とされた。当初のメジャーバージョン値は小数点第一位にされた。通称にバージョン値を付けたものがリリース名になった。まだ国際化対応はされず英語版のみだった。最初のα版は1995年5月23日にリリースされた。

 ファイル入出力
 ネットワーク接続（TCPソケットとUDPソケット）
 データコレクション（配列、、、）
 数学演算
 アプレットとセキュリティ
Abstract Window Toolkit（グラフィカルユーザーインターフェースサポート）

 JDK 1.1 (1997年2月19日) 
国際化対応され日本語版も追加された。

リフレクション（クラスメタデータ操作API）
Java Text（文章、暦、日付、数値などの国別書式）
Input Method Framework（文章入力の国別書式）
Java 2D（グラフィックサポート）

 J2SE 1.2 (1998年12月8日)「Playground」 
大幅な技術刷新によりブランド名が「Java 2」に改められた。統合仕様の確立でプロダクト名が「Platform」に改められた。エディションの分化で「Standard」が付加された。こうしてプロパー名「Java 2 Platform, Standard Edition」通称「J2SE」になった。ここからコードネームが付けられるようになった。翌年にエンタープライズ版「J2EE 1.2」とマイクロ版「J2ME 1.2」もリリースされた。

strictfpキーワード（言語仕様、浮動小数点計算）
仮想マシンに実行時コンパイラ（Just-In-Time Compiler）
Javaプラグイン（WEBブラウザへのアプレット実行環境挿入）
Swing（グラフィックユーザーインターフェース）
Collection Framework（コレクションAPI）
Security Framework（セキュリティAPI）
Java Internet Description Language（IDLからJava CORBA用スタブ＆スケルトンを生成）
Java Accessibility API（画面Reader、音声認識、点字端末などのユーザー補助機能）

 J2SE 1.3 (2000年5月8日)「Kestrel」 
ここからメジャーバージョンのコードネームは鳥獣名、マイナーバージョンは昆虫名にするのが慣例になった。

 仮想マシンにHotSpotエンジン（動的再コンパイル技術と世代別ガベージコレクション）
Java Platform Debugger Architecture（デバッガ・アーキテクチャ）
Java Name and Directory Interface（ネーミング＆ディレクトリサービスAPI）
RMI over IIOP（RMIをIIOPプロトコル上でも使える仕様）
Java Sound（サウンドAPI）

 J2SE 1.4 (2002年2月6日)「Merlin」 
このバージョンからJavaコミュニティプロセス（Java Community Process）による仕様策定が開始されたJSR 59。

assert キーワード（言語仕様、デバッグ用ディレクティブ、任意条件でプログラム中断）
Java Web Start
正規表現用API
ロギング用API
New I/O（非遮断ストリーム入出力、バッファストリームAPI）
Image I/O（JPEGとPNGを使えるAPI）
Preferences（ツリー型のJava式セーブデータ収納庫API）
Java API for XML Processing（XMLパーサ＆マニュピレータAPI、XSLTフォーマットAPI）
Java Cryptography Extension（暗号化API）
Java Secure Socket Extension（TLS / SSL用API）
Java Authentication and Authorization Service（認証＆権限サービスAPI）

 J2SE 5.0 (2004年9月30日)「Tiger」 
メジャーバージョン値が整数部分に変更された。言語仕様に大幅な拡張が加えられた 。メモリモデル改善でマルチスレッドも軽量化した。他エディションは「J2EE 1.4」「J2ME 1.4」のままだった。この頃に「Java Card Platform」がエディション昇格し、バージョンは独自式のまま「Java Card 2.2」でリリースされた。

ジェネリクス（パラメトリック多相を付加したデータコンテナクラス→ List<T>）
オートボクシング（ボックス化、プリミティブ値とラッパーインスタンスの自動変換）
列挙型（enumキーワードで定数クラスを定義）
 可変長引数（引数欄の型名に3連ドットで配列渡しと解釈される→ void drawText(String... lines)）
アノテーション（@キーワードでクラスメタデータに注釈タグと注釈コメントを埋め込むアドホック多相）
拡張for文（対象リストのイテレータ表現式になるfor文）
静的インポート文（クラス静的メンバのフルパスをimportで指定できる）
Java Management Extensions（MBeanを用いた依存性の注入による実行プログラムの動的再構成の最適化）

 Java SE 6 (2006年12月11日)「Mustang」 
ブランド名が「Java 2」から「Java」に戻されてプロパー名「Java Platform, Standard Edition」となり、通称が「J2SE」から「Java SE」になった。バージョン値から小数点以下が外された。なおマイナーバージョン更新では再び小数点以下が付けられた。他エディションも「Java EE 5」「Java ME 5」になった。仮想マシンを含めた既存機能の改善と洗練に力が注がれた。

 ジェネリクスの拡張。他言語のジェネリックプログラミングと同等に整備した。
Scripting for the Java Platform（スクリプト言語との連携サポート）
Java Architecture for XML Binding（Java XMLアーキテクチャ）
Java API for XML Web Services（WEB向けのXML）
Java Compiler API（Javaコンパイラへのディレクティブに特化したAPI）
Unicode正規化 API
差し込みアノテーション（インスタンス別、クラス派生別にアノテーションを埋め込めるアドホック多相）
Swingの高速化、Windows用ルック＆フィールの追加、Windowsタスクトレイ表示
 Update10で、Java Quick Starter（アプリ起動高速化）Java Kernel（Java環境インストール高速化）を搭載

 Java SE 7 (2011年7月28日)「Dolphin」 
サン社を買収したオラクル社による初のメジャーバージョンリリースである。

invoke_dynamic API（クラスインスタンスとメソッドシグネチャの組み換えによる動的ディスパッチ）
New File I/O Library（新しいファイル入出力ライブラリ）
Concurrency Library（並行処理API）
暗号化APIに楕円曲線暗号を導入
ネットワークAPIにStream Control TransmissionプロトコルとSockets Directプロトコルを導入
グラフィック関連の強化。Update2でJavaFXの導入

 Java SE 8 (2014年3月18日) 
ここでコードネームが廃止されたJSR 337: Java SE 8 Release Contents。長期サポート（LTS）リリース制度下の最終版である。

言語仕様にラムダ式の導入（引数 → 関数式）
言語仕様にメソッド参照の導入
関数型インターフェース（引数と返値をテンプレート化できるパラメトリック多相）
Stream API（コレクションコンテナ各要素への連続的なラムダ式適用）
JavaScriptのコードを埋め込めるNashorn Javaスクリプトエンジンの搭載（Project Nashorn）
型アノテーション（@interfaceで構造体化したアノテーションを定義、複数の注釈フィールドを持つ）
反復アノテーション（バックグラウンドタスクのクラスをアドホック多相で任意日時稼働にスケジュールする）
Date and Time API（日付時刻）
静的結合 Java Native Interface ライブラリ

 Java SE 9 (2017年9月21日) 
ここからメジャーバージョンは一定の新機能蓄積を待たずに公開する毎年3月と9月の年2回定期リリース制に変更された。従来の長期サポート（LTS）が無くなり、原則的に半年間サポートになった。

従来のパッケージ（package）の上にモジュール（module）を追加（Project Jigsaw）
 言語仕様の細かな拡張（Project Coin）
並行処理ライブラリの拡張
 Compact Stringの追加
 「JShell」の搭載。コンソール形式でJavaコードを入力し実行結果を確認できる
 「The Java Linker」の搭載。ユーザー環境に最適なモジュールと仮想マシンモードを自動選択実行する
仮想マシンに前方コンパイル（Ahead-Of-Time Compilation）の導入
 XML catalogs（永続的URLへのマッピング）
HiDPI Graphicsの導入（画像拡大縮小の改善）
G1（shorter-response-timeガーベジコレクタ）

 Java SE 10 (2018年3月20日) 
JSR 383にて仕様規定JSR 383: Java™ SE 10 (18.3)。ここから追加要素の大半は、標準機能相当のJSR（仕様要求）ではなく、拡張機能扱いのJEP（改善提案）になった。試作段階の機能がお試し用として追加されるようになった。

 ローカル変数の型推論
ルート証明書
Unicode language-tag extensions（Unicode言語タグの操作）
ガーベジコレクタ・インターフェース（各種ガーベジコレクタの共存連携操作）
G1（shorter-response-timeガーベジコレクタ）用パラレル機能
ZGC（low-latencyガーベジコレクタ）第1回試作

 Java SE 11 (2018年9月25日) 
JSR 384にて仕様規定JSR 384: JavaTM SE 11 (18.9)。
 Java Development Kit として Oracle JDK と OpenJDK の二つが提供されるようになった。ソースコードは同一であり、サポートに差がある。Oracle JDKの開発目的以外の商用利用は有償長期サポート（LTS）契約を結ぶ必要があり、長期サポート（LTS）対象にされているが、有償LTSである。OpenJDK の方はサポートが無いが無償で利用可能である。
 Java Runtime Environment が廃止され、JRE を OS にインストールするのではなく、アプリケーションごとに OpenJDK のサブセットを同梱配布する方法が推奨されることとなった。
 JavaアプレットとJava Web Startを廃止。JRE廃止と同じ考え方である。
 Java EEのアップグレードがエクリプス財団によるJakarta EEに移譲されたので、JDKにEnterprise版連携モジュールが含まれなくなった。CORBAモジュールも外された。
 Java FX が取り除かれた。
 Dynamic class-file constants（拡張invoke_dynamic、クラスローディングによるクラス静的メンバの動的バインディング）
ラムダ式の引数の型推論
 HTTPクライアント実装用API
 Flight recorder（Javaプログラム実行トレース用の軽快な各種データ収集フレームワーク）
 Unicode 10.0.0のサポート
 ZGC（low-latencyガーベジコレクタ）第2回試作

 Java SE 12 (2019年3月19日) 
JSR 386にて仕様規定。アップデートで令和改元に向けたセキュリティ対策が施された。

 switch文をパターンマッチング 式スタイルに拡張・第1回試作
 JVM Constants API（クラスローディングに関連した仮想マシン内のクラス定数プールの操作）
G1（shorter-response-timeガーベジコレクタ）用コレクション中断機能
G1（shorter-response-timeガーベジコレクタ）用不要メモリ返却機能
ZGC（low-latencyガーベジコレクタ）第3回試作
Shenandoah（low-pause-timeガベージコレクタ）第1回試作

 Java SE 13（2019年9月17日) 
JSR 388にて仕様規定。「数百の小粒改良、数千のバグ修正」と宣伝された。

 ソケットAPIの改良実装
 switch文をパターンマッチング 式スタイルに拡張・第2回試作
Text Blocks（文字列リテラルの複数行記述可能）第1回試作
ZGC（low-latencyガーベジコレクタ）第4回試作

 Java SE 14（2020年3月17日) 
JSR 389にて仕様規定。「数百の小粒改良、数千のバグ修正」と宣伝された。

 Recordクラス（不変フィールド、標準アクセッサ、標準構築子を持つイミュータブルオブジェクト）第1回試作
 instanceofパターンマッチング（if文のinstanceof判定で代入変数も同時定義できる糖衣構文）第1回試作
 switch文をパターンマッチング 式スタイルに拡張・第3回試作
 Text Blocks（文字列リテラル の複数行記述可能）第2回試作
 Foreign-Memory Access API （仮想マシンの外部メモリにも安全にアクセスできる）第1回試作
 ZGC（low-latencyガーベジコレクタ）第5回試作

 Java SE 15（2020年9月15日) 
JSR 390にて仕様規定。

JEP-339：Edwards-Curve デジタル署名アルゴリズム
JEP-360：Sealedクラス・第1回試作（サブクラスを事前定義で固定化したクラス。オブジェクトの非交和＝直和構造を表わす）
JEP-371：Hiddenクラス（フレームワーク内限定の隠されたクラス。モンキーパッチなどに応用できる）
JEP-373：データグラム・ソケットAPIの改良実装
JEP-375：instanceofパターンマッチング・第2回試作
JEP-377：ZGC（low-latencyガーベジコレクタ）第6回試作
JEP-378：Text Blocks・第3回試作
JEP-379：Shenandoah（low-pause-timeガベージコレクタ）第2回試作
JEP-383：Foreign-Memory Access API・第2回試作
JEP-384：Recordクラス・第2回試作（フィールドを不変にしたクラス。オブジェクトの直積構造を表わす）

Java SE 16 (2021年3月16日）
JSR 391にて仕様規定オラクル、Java 16を発表。

JEP 338: ベクトルAPI
JEP 347: C++14言語機能の有効化
JEP 357: MercurialからGitへの移行
JEP 369: GitHubへの移行
JEP 376: ZGC:並列スレッドスタック処理
JEP 380: UNIXドメイン・ソケット・チャネル
JEP 386: Alpine Linuxポート
JEP 387: Elastic Metaspace
JEP 388: Windows/Aarch64ポート
JEP 389: 外部リンカーAPI
JEP 390: 値ベース・クラスの警告
JEP 392: パッケージング・ツール
JEP 393: 外部メモリ・アクセスAPI
JEP 394: instanceofのパターン・マッチング
JEP 395: Records
JEP 396: JDK internalをデフォルトで強固にカプセル化
JEP 397: シールド・クラス（第2プビュー）

Java SE 17 (2021年9月14日) 
JSR 392にて仕様規定オラクル、Java 17をリリース。

JEP 306: Always-Strict Floating-Point セマンティクスのリストア
JEP 356: 疑似乱数ジェネレーターの強化
JEP 382: 新しいmacOSレンダリング・パイプライン
JEP 391: macOS AArch64 Port
JEP 398: Applet APIの廃止
JEP 403: JDK内部の強力なカプセル化
JEP 406: スイッチのパターン・マッチング（プレビュー）
JEP 407: RMIアクティベーションの削除
JEP 409: シール・クラス
JEP 410: 試験的AOTおよびJITコンパイラの削除
JEP 411: Security Managerの削除に向けた非推奨
JEP 412: 外部関数およびメモリAPI（インキュベーター）
JEP 414: ベクトルAPI（セカンド・インキュベーター）

Java SE 18 (2022年3月22日) 
JSR 393にて仕様規定オラクル、Java 18を発表。

JEP 400: UTF-8（デフォルト）
JEP 408: Simple Web Server
JEP 413: Java APIドキュメントのEPコード・スニペット
JEP 416: メソッド・ハンドルによるCore Reflectionの再実装
JEP 417: Vector API（第3インキュベータ）
JEP 418: インターネット・アドレス解決SPI
JEP 419: 外部関数・メモリAPI（第2インキュベータ）
JEP 420: Switchのパターン・マッチング（第2プレビュー）
JEP 421: ファイナライズを非推奨とし削除に備える

Java SE 19 (2022年9月20日) 
JSR 394にて仕様規定オラクル、Java 19をリリース。

JEP 405: レコード・パターン（プレビュー）
JEP 422: Linux/RISC-V への移植
JEP 424: 外部関数・メモリAPI（プレビュー）
JEP 425: 仮想スレッド（プレビュー）
JEP 426: ベクトルAPI（第4インキュベーター）
JEP 427: switchのパターン・マッチング（第3プレビュー）
JEP 428: 構造化された並行性（インキュベーター）

Java SE 20 (2023年3月21日) 
JSR 395にて仕様規定オラクル、Java 20をリリース。

JEP 429: スコープ値（インキュベータ）
JEP 432: レコード・パターン（第2プレビュー）
JEP 433: Pattern Matching for Switch（第4プレビュー）
JEP 434: Foreign Function & Memory API（第2プレビュー）
JEP 436: 仮想スレッド（第2プレビュー）
JEP 437: 構造化された並行性（第2インキュベーター）
JEP 438: ベクトルAPI（第5インキュベーター）

Java SE 21 (2023年9月19日) 
JSR 396にて仕様規定オラクル、Java 21のリリースとサポート・ロードマップの延長を発表。

JEP 430: 文字列テンプレート（プレビュー）
JEP 434: Foreign Function & Memory API（第3プレビュー）
JEP 439: 世代別ZGC
JEP 440: レコード・パターン（第3プレビュー）
JEP 441: Pattern Matching for Switch
JEP 443: 無名のパターンと変数（プレビュー）
JEP 444: 仮想スレッド
JEP 445: 無名のクラスとインスタンス・メイン・メソッド（プレビュー）
JEP 446: スコープ値（プレビュー）
JEP 448: Vector API（第6インキュベーター）
JEP 453: 構造化された並行性（プレビュー）

Java SE 22 (2024年3月19日) 
JSR 397にて仕様規定オラクル、Java 22をリリース。

JEP 423: G1領域の固定
JEP 447:super(...)の前の文（プレビュー）
JEP 454: Foreign Function & Memory API
JEP 456: 無名変数とパターン 
JEP 457: Class-File API （プレビュー） 
JEP 458: マルチファイル・ソース・コード・プログラムの起動 
JEP 459: 文字列テンプレート（第2プレビュー）
JEP 460: Vector API（第7インキュベーター）
JEP 461: Stream Gatherers （プレビュー）
JEP 462: 構造化された並行性 （第2プレビュー）
JEP 463: 暗黙的に宣言されたクラスとインスタンスのメイン・メソッド（第2プレビュー）
JEP 464: スコープ値（第2プレビュー）

Java SE 23 (2024年9月17日) 
JSR 398にて仕様規定オラクル、Java 23をリリース。

JEP 455: プリミティブ型のパターン、instanceof、switch（プレビュー）
JEP 466: Class-File API （第2プレビュー）
JEP 467: Markdownドキュメント・コメント
JEP 469: Vector API（第8インキュベーター）
JEP 471: sun.misc.unsafeのメモリアクセス・メソッドを削除を予定した非推奨に設定
JEP 473: Stream Gatherers （第2プレビュー）
JEP 474:  ZGC: 世代別モードのデフォルト化
JEP 476:  モジュール・インポート宣言（プレビュー）
JEP 477:  暗黙的に宣言されたクラスとインスタンスのメイン・メソッド（第3プレビュー）
JEP 480:  構造化された並行性 （第3プレビュー）
JEP 481:  スコープ値（第3プレビュー）
JEP 482:  柔軟なコンストラクタ本体（第2プレビュー）

Java SE 24 (2025年3月18日) 
JSR 399にて仕様規定オラクル、Java 24をリリース。

JEP 404: 世代別Shenandoah (試験段階)
JEP 450: コンパクトなオブジェクト・ヘッダー (試験段階)
JEP 475: G1の遅延バリア機能の拡張
JEP 478: キー導出関数API (プレビュー)
JEP 479: Windows 32ビットx86ポートの削除
JEP 483: 事前クラス・ローディングおよびリンク
JEP 484: Class-File API
JEP 485: Stream Gatherers （第2プレビュー）
JEP 487: スコープ値（第4プレビュー）
JEP 488: プリミティブ型のパターン、instanceof、switch (第2プレビュー)
JEP 489: Vector API（第9インキュベーター）
JEP 490: ZGC: 非世代別モードの削除
JEP 491: ピン留めなしで仮想スレッドを同期
JEP 492: 柔軟なコンストラクタ本体 (第3プレビュー)
JEP 493: JMODなしのランタイム・イメージのリンク
JEP 494: モジュール・インポート宣言（第2プレビュー）
JEP 495: シンプルなソースファイルとインスタンスのmainメソッド (第4プレビュー)
JEP 496: 量子耐性のあるモジュールlatticeベースのキー・カプセル化メカニズム
JEP 497: 量子耐性のあるモジュールlatticeベースのデジタル署名アルゴリズム
JEP 499: 構造化された並行性 （第4プレビュー）
JEP 501: 32ビットx86ポートの非推奨と削除

Java SE 25 (2025年9月16日) 
JSR 400にて仕様規定オラクル、Java 25をリリース。

JEP 470: 暗号化オブジェクトのPEMエンコーディング（プレビュー）
JEP 502: 安定値（プレビュー）
JEP 505: 構造化された並行性（第5プレビュー）
JEP 506: スコープ値
JEP 507: プリミティブ型のパターン、instanceof、switch（第3プレビュー）
JEP 508: Vector API（第10インキュベーター）
JEP 509: JFR CPU時間プロファイリング（試験段階）
JEP 510: キー導出関数API
JEP 511: モジュール・インポート宣言
JEP 512: コンパクトなソースファイルとインスタンスのmainメソッド
JEP 513: 柔軟なコンストラクタ本体
JEP 514: 事前実行によるコマンドラインの利便性
JEP 515: 事前メソッド・プロファイリング
JEP 518: JFR協調サンプリング
JEP 519: コンパクトなオブジェクト・ヘッダー
JEP 520: JFRメソッドのタイミング測定＆トレース機能

 各版リリース日/サポート期限一覧 
 バージョン リリース日無料公開アップデート期限 有償サポート期限   1996年1月 不明  不明   1997年2月 不明  不明   1998年12月 不明  不明   2000年5月 不明  不明   2002年2月 2008年10月 2013年2月   2004年9月 2009年11月 2015年4月   2013年4月  2018年12月   2011年7月  2022年7月 rowspan="7"  2014年3月 Oracle JDK（商用）  2019年4月 2030年12月(延長サポート)Oracle JDK（個人や開発用） 未定Eclipse Temurin  最短で2030年12月Adoptiumによると、アップストリームがメンテナンスされている限りはLTSリリースのバイナリのビルドを継続するとしている。Red Hat 2026年11月2030年12月Amazon Corretto 2030年12月Azul Zulu  2030年12月Ubuntu OpenJDK  未定  2034年以降   2017年9月  Oracle JDK  2018年3月     2018年3月  Oracle JDK  2018年9月   rowspan="7"  2018年9月  Oracle JDK（商用）  2019年9月  2032年1月(延長サポート)Oracle JDK（個人や開発用）  2032年1月Eclipse Temurin  最短で2027年10月  Red Hat 2024年10月  2027年10月Amazon Corretto  2032年1月  Azul Zulu  2032年1月 Ubuntu 22.04 OpenJDK 2027年4月 2037年4月   2019年3月  Oracle JDK  2019年9月     2019年9月  Oracle JDK  2020年3月     2020年3月  Oracle JDK  2020年9月     2020年9月  Oracle JDK  2021年3月     2021年3月  Oracle JDK  2021年9月   rowspan="7"  2021年9月  Oracle JDK（商用）  2024年9月  2029年9月(延長サポート) Oracle JDK（個人や開発用）  2026年9月Eclipse Temurin  最短で2027年10月  Red Hat  2027年10月Amazon Corretto  2029年10月  Azul Zulu  2029年9月 Ubuntu 24.04 OpenJDK 2029年4月 2039年4月   2022年3月 Oracle JDK  2022年9月     2022年9月 Oracle JDK  2023年3月     2023年3月 Oracle JDK  2023年9月   rowspan="6"  2023年9月  Oracle JDK  2026年9月  2031年9月(延長サポート)Eclipse Temurin  最短で2029年12月  Red Hat  2029年12月Amazon Corretto  2030年10月  Azul Zulu  2031年9月 Ubuntu 26.04 OpenJDK 2031年4月 2041年4月   2024年3月 Oracle JDK  2024年9月     2024年9月 Oracle JDK  2025年3月     2025年3月 Oracle JDK  2025年9月   rowspan="5"  2025年9月 Oracle JDK  2028年9月  2033年9月(延長サポート)Eclipse Temurin  最短で2031年9月  Red Hat  2030年12月Amazon Corretto  2032年10月  Azul Zulu  2033年9月 

 有償サポート 
 オラクルはソフトウェアの修正を行うのは延長サポートまでであるが、質問に答えるだけの sustaining サポートは無期限で行う。Java 21以降のLTSは、OpenJDKではなくOracle JDKとして無償利用可能なのはリリース後3年間である。それ以降は有償契約が必要。
 Ubuntu は OpenJDK LTS の最長の有償サポートを行っている。main リポジトリに入っている場合は OS のサポート期限までセキュリティアップデートも行う。OpenJDK 8 は universe リポジトリではあるものの、少なくとも2034年までは有償サポート（含むセキュリティアップデート）を行う。
 Red Hat は Java 17 以降は特別な長期の有償サポートは行わない。OS のサポート期限よりも短いため、定期的に次の LTS の Java に乗り換える必要がある。OpenJDK と Eclipse Temurin のサポートを行う。

 脚注 

 外部リンク 
 公式Java SEダウンロード 
 JDK Releases - オラクルによるリリース履歴の公式情報
 Javaの初期の歴史 
 J2SE 1.3の変更点の完全なリスト 
 J2SE 1.4の変更点の完全なリスト 
 J2SE 5.0の変更点の完全なリスト 
 Java SE 6の変更点の完全なリスト 
 Java SE 6のMustang開発サイト 
 Java SE 7リリースノート 
 Sun JavaがサポートするバージョンとEOL 
 古いバージョンのJavaのダウンロードアーカイブ

Category:Javaプラットフォーム
Category:ソフトウェアの歴史