Javaバージョン履歴

本稿ではJavaプラットフォームの基準であるスタンダード版のメジャーバージョン履歴を説明する。その他にもエンタープライズ版、マイクロ版、カード版といった周辺エディションが存在し、それぞれが個別にメジャーバージョン改訂を行っているが、いずれもスタンダード版改訂を基準にしそれに後発する時系列でリリースされている。
バージョン一覧.
JDK 1.0 (1996年1月23日).
Javaプラットフォームの初回バージョンは、ブランド名「Java」プロダクト名「Development Kit」からプロパー名「Java Development Kit」とネーミングされ通称は「JDK」とされた。当初のメジャーバージョン値は小数点第一位にされた。通称にバージョン値を付けたものがリリース名になった。まだ国際化対応はされず英語版のみだった。
JDK 1.1 (1997年2月19日).
国際化対応さ
J2SE 1.2 (1998年12月8日)「Playground」.
大幅な技術刷新によりブランド名が「Java 2」に改められた。統合仕様の確立でプロダクト名が「Platform」に改められた。エディションの分化で「Standard」が付加された。こうしてプロパー名「Java 2 Platform, Standard Edition」通称「J2SE」になった。ここからコードネームが付けられるようになった。翌年にエンタープライズ版「J2EE 1.2」とマイクロ版「J2ME 1.2」もリリースされた。
J2SE 1.3 (2000年5月8日)「Kestrel」.
ここからメジャーバージョンのコードネームは鳥獣名、マイナーバージョンは昆虫名にするのが慣例になった。
J2SE 1.4 (2002年2月6日)「Merlin」.
このバージョンからJavaコミュニティプロセス（Java Community Process）による仕様策定が開始された。
J2SE 5.0 (2004年9月30日)「Tiger」.
メジャーバージョン値が整数部分に変更された。言語仕様に大幅な拡張が加えられた。メモリモデル改善でマルチスレッドも軽量化した。他エディションは「J2EE 1.4」「J2ME 1.4」のままだった。この頃に「Java Card Platform」がエディション昇格し、バージョンは独自式のまま「Java Card 2.2」でリリースされた。
Java SE 6 (2006年12月11日)「Mustang」.
ブランド名が「Java 2」から「Java」に戻されてプロパー名「Java Platform, Standard Edition」となり、通称が「J2SE」から「Java SE」になった。バージョン値から小数点以下が外された。なおマイナーバージョン更新では再び小数点以下が付けられた。他エディションも「Java EE 5」「Java ME 5」になった。仮想マシンを含めた既存機能の改善と洗練に力が注がれた。
Java SE 7 (2011年7月28日)「Dolphin」.
サン社を買収したオラクル社による初のメジャーバージョンリリースである。
Java SE 8 (2014年3月18日).
ここでコードネームが廃止された。長期サポート（LTS）リリース制度下の最終版である。
Java SE 9 (2017年9月21日).
ここからメジャーバージョンは一定の新機能蓄積を待たずに公開する毎年3月と9月の年2回定期リリース制に変更された。従来の長期サポート（LTS）が無くなり、原則的に半年間サポートになった。
Java SE 10 (2018年3月20日).
JSR 383にて仕様規定。ここから追加要素の大半は、標準機能相当のJSR（仕様要求）ではなく、拡張機能扱いのJEP（改善提案）になった。試作段階の機能がお試し用として追加されるようになった。
Java SE 11 (2018年9月25日).
JSR 384にて仕様規定。Java開発環境として「Oracle JDK」と「OpenJDK」の二つが提供されるようになり、前者の商用利用は有償長期サポート（LTS）契約を結んだ顧客のみになった。Java EEのアップグレードがエクリプス財団による「Jakarta EE」に移譲されたので、JDKにEnterprise版連携モジュールが含まれなくなった。CORBAモジュールも外された。Java FXも取り除かれた。このバージョンは長期サポート（LTS）対象にされているが、上述の通り有償LTSである。
Java SE 12 (2019年3月19日).
JSR 386にて仕様規定。アップデートで令和改元に向けたセキュリティ対策が施された。
Java SE 13（2019年9月17日).
JSR 388にて仕様規定。「数百の小粒改良、数千のバグ修正」と宣伝された。
Java SE 14（2020年3月17日).
JSR 389にて仕様規定。「数百の小粒改良、数千のバグ修正」と宣伝された。
Java SE 15（2020年9月15日).
JSR 390にて仕様規定。
Java SE 16 (2021年3月16日）.
JSR 391にて仕様規定。
Java SE 17 (2021年9月14日).
JSR 392にて仕様規定。
Java SE 18 (2022年3月22日).
JSR 393にて仕様規定。
Java SE 19 (2022年9月20日).
JSR 394にて仕様規定。
Java SE 20 (2023年3月21日).
JSR 395にて仕様規定。
概要.
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にバックポートするなど）。 
Java 11と17は、現在サポートされている長期サポート（LTS）バージョン（「オラクルの顧客は、Oracle Premier Supportを提供される」）である。オラクルは、「レガシー」Java 8 LTSについて、商用利用向けには2019年1月に最後の無料の「パブリック・アップデート」をリリースしたが、それ以外の場合は、少なくとも2020年12月までは、個人利用向けのパブリック・アップデートでJava 8をサポートする。Java 10は以前サポートされていたラピッドリリース版である。Java 10のサポートは、Java 11のサポートが開始されたのと同じ日、2018年9月に終了した。Java 7はパブリックサポートが終了し、Java 9はJava 10と現在のJava 11に取って代わられた短期のラピッドリリース版であったため、アップデートの受信が停止している。Java 11以降については、長期的なアップデートはオラクルが無償で提供するものではなく、より広範なOpenJDKコミュニティが作業を行うことが期待されている。 
Java 20の一般提供は2023年3月21日に行われ 、Java 21にはアーリーアクセスビルドが含まれている。