「Java 8はまだ使えるの?」「Java 11から最新版に移行すべき?」「LTSって何?」——Javaを使っている開発者やシステム管理者なら、こうした疑問を一度は持ったことがあるのではないでしょうか。
2018年のライセンス変更以降、Javaのサポート体系は大きく変わりました。半年ごとのリリースサイクル、LTS(長期サポート)版の導入、Oracle JDKの有償化など、複雑な状況になっています。
今回は、2025年最新版として、Javaのサポート期間について徹底解説します。バージョン別のサポート状況、ベンダー別の違い、バージョン選択のポイントまで、完全網羅してお伝えします。
Javaのサポート期間の基本
まず、Javaのサポート体系の基本を理解しましょう。
リリースサイクルの変更(2017年〜)
従来(Java 8以前)
- 不定期リリース
- 2〜3年に1回のメジャーアップデート
- すべてのバージョンが長期サポート
現在(Java 9以降)
- 定期リリース:6ヶ月ごと(3月・9月)
- LTS版:2年ごと(奇数バージョン)
- 非LTS版:次のリリースまでの6ヶ月のみサポート
LTS(Long-Term Support)とは?
LTS版の特徴
- 長期サポート:最低5年のPremier Support
- セキュリティパッチ:定期的な更新
- 安定性重視:本番環境での使用を想定
- リリースサイクル:2年ごと
LTS版の例
- Java 8(2014年)
- Java 11(2018年)
- Java 17(2021年)
- Java 21(2023年)
- Java 25(2025年)← 最新
非LTS版の特徴
- 短期サポート:次のバージョンまでの6ヶ月のみ
- 新機能検証:次のLTS版の準備用
- 本番環境非推奨:開発・検証用途
非LTS版の例
- Java 9, 10, 12, 13, 14, 15, 16, 18, 19, 20, 22, 23, 24
Oracleのサポートレベル
Oracle JDKには、3つのサポートレベルがあります。
1. Premier Support(プレミアサポート)
- 期間:リリース後5年間(LTS版)
- 内容:
- セキュリティパッチ
- バグ修正
- 機能改善
- 技術サポート
2. Extended Support(拡張サポート)
- 期間:Premier Support終了後3年間(LTS版のみ)
- 内容:
- セキュリティパッチ
- 重大なバグ修正
- 技術サポート
- 注意:通常は有償(一部バージョンは期間限定で無償)
3. Sustaining Support(維持サポート)
- 期間:無期限
- 内容:
- 質問への回答のみ
- バグ修正・パッチなし
バージョン別サポート期間一覧
各Javaバージョンのサポート期間を詳しく見ていきましょう。
現在サポート中のLTSバージョン
Java 25 LTS(最新)
リリース日
- 2025年9月16日
サポート期間(Oracle JDK)
- Premier Support:2030年9月まで(5年間)
- Extended Support:2033年9月まで(8年間)
- Sustaining Support:無期限
ライセンス
- NFTC(No-Fee Terms and Conditions):2028年9月まで無償
- 2028年10月以降:OTNライセンス(有償)
特徴
- 2年サイクルの最新LTS
- Java 21からの移行期間:1年(2026年9月まで)
- 最新機能を含む安定版
推奨度
- 新規プロジェクト:◎
- 既存システム:○(Java 21からの移行を検討)
Java 21 LTS
リリース日
- 2023年9月19日
サポート期間(Oracle JDK)
- Premier Support:2028年9月まで(5年間)
- Extended Support:2031年9月まで(8年間)
- Sustaining Support:無期限
ライセンス
- NFTC:2026年9月まで無償
- 2026年10月以降:OTNライセンス(有償)
特徴
- 現在最も推奨されるバージョン(2025年時点)
- Virtual Threads、Pattern Matching、Record Patterns などの新機能
- 多くの企業が採用
推奨度
- 新規プロジェクト:◎
- 既存システム:◎
Java 17 LTS
リリース日
- 2021年9月14日
サポート期間(Oracle JDK)
- Premier Support:2026年9月まで(5年間)
- Extended Support:2029年9月まで(8年間)
- Sustaining Support:無期限
ライセンス
- NFTC:2024年9月まで無償だった
- 2024年10月以降:OTNライセンス(有償)
特徴
- Java 11からの移行先として広く採用
- Sealed Classes、Pattern Matching、Text Blocks などの新機能
- 多くのフレームワークがサポート
推奨度
- 新規プロジェクト:○(Java 21を推奨)
- 既存システム:◎(安定している)
Java 11 LTS
リリース日
- 2018年9月25日
サポート期間(Oracle JDK)
- Premier Support:2023年9月まで(5年間)→ 終了済み
- Extended Support:2026年9月 → 2032年1月まで延長
- Sustaining Support:無期限
ライセンス
- Oracle JDK:商用利用は有償(2018年以降)
- OpenJDK:無償
特徴
- Java 8からの移行先として広く採用された
- 初のLTSサイクル導入バージョン
- 現在も多くのシステムで稼働中
サポート延長
Oracleは2023年、Java 11の広範な利用と顧客要望を受けて、Extended Supportを2032年1月まで延長すると発表しました。これにより、合計14年間のサポートが提供されます。
推奨度
- 新規プロジェクト:×(非推奨)
- 既存システム:△(2026年までに移行を検討)
Java 8 LTS
リリース日
- 2014年3月18日
サポート期間(Oracle JDK)
- Premier Support:2022年3月まで(8年間)→ 終了済み
- Extended Support:2030年12月まで
- Sustaining Support:無期限
ライセンス
- Oracle JDK:
- 2019年1月以前のリリース:無償
- 2019年2月以降:商用利用は有償
- OpenJDK:無償
特徴
- ラムダ式、Stream API、Date/Time API など重要な機能を導入
- 最も長く使われているバージョン
- 現在も多くのレガシーシステムで稼働
注意点
- Oracle JDKの無償サポートは終了
- OpenJDKやサードパーティベンダーのサポートを検討する必要あり
推奨度
- 新規プロジェクト:×(絶対に避ける)
- 既存システム:×(早急に移行を計画)
サポート終了したバージョン
Java 7以前
Java 7
- リリース:2011年7月
- サポート終了:2015年4月(Public Update)
- Extended Support終了:2022年7月
Java 6
- リリース:2006年12月
- サポート終了:2013年2月
- Extended Support終了:2018年12月
Java 5以前
- すべてサポート終了
これらのバージョンは、セキュリティリスクが非常に高く、使用すべきではありません。
非LTSバージョン
Java 24
- リリース:2025年3月18日
- サポート期間:2025年9月まで(Java 25リリースまで)
Java 23
- リリース:2024年9月17日
- サポート期間:2025年3月まで → 終了済み
Java 22
- リリース:2024年3月19日
- サポート期間:2024年9月まで → 終了済み
Java 20
- リリース:2023年3月21日
- サポート期間:2023年9月まで → 終了済み
その他(Java 9〜19)
- すべてサポート終了
非LTSバージョンは、開発・検証用途のみに使用し、本番環境では使用しないでください。
ベンダー別サポート状況
Javaには、Oracle JDK以外にも多くのベンダーが提供するディストリビューションがあります。
Oracle JDK
提供元
Oracle Corporation
ライセンス
- NFTC(No-Fee Terms and Conditions):一定期間無償
- OTNライセンス:商用利用は有償
サポート内容
- Premier Support:5年
- Extended Support:3年(LTSのみ)
- Sustaining Support:無期限
特徴
- 公式版
- 最も安定している
- 商用サポートあり
- Java 17以降は一定期間無償
コスト
- NFTC期間中:無償
- OTNライセンス:ユーザー数・プロセッサ数ベースの課金
OpenJDK
提供元
OpenJDKコミュニティ、Oracle
ライセンス
- GPLv2 + Classpath Exception(完全無償)
サポート内容
- 次のバージョンリリースまでの6ヶ月のみ
特徴
- 完全無償
- Oracle JDKと機能はほぼ同じ
- サポート期間が短い(LTS版でも6ヶ月)
コスト
- 無償
注意点
OpenJDK自体はLTS版でも6ヶ月しかサポートされません。長期サポートが必要な場合は、サードパーティベンダーのディストリビューションを使用してください。
Red Hat OpenJDK(Red Hat build of OpenJDK)
提供元
Red Hat
ライセンス
- GPLv2 + Classpath Exception(無償)
- 商用サポートはRed Hat契約が必要
サポート内容
- LTS版:製品ライフサイクルに準じる(通常6年以上)
- Red Hat Enterprise Linuxのサポート期間に連動
特徴
- Red Hat製品との統合
- 長期サポート
- エンタープライズグレード
コスト
- バイナリ:無償
- 商用サポート:Red Hatサブスクリプション必要
対象バージョン
- Java 8, 11, 17, 21
Amazon Corretto
提供元
Amazon Web Services(AWS)
ライセンス
- GPLv2 + Classpath Exception(完全無償)
サポート内容
- Java 8:少なくとも2026年まで
- Java 11:少なくとも2027年まで
- Java 17:少なくとも2029年まで
- Java 21:少なくとも2031年まで
特徴
- AWS環境に最適化
- 無償で長期サポート
- パフォーマンスチューニング済み
- 商用サポートあり(AWS Support経由)
コスト
- 完全無償(商用サポート含む)
対象バージョン
- Java 8, 11, 17, 21
Microsoft Build of OpenJDK
提供元
Microsoft
ライセンス
- GPLv2 + Classpath Exception(完全無償)
サポート内容
- LTS版:四半期ごとのアップデート
- Azure顧客向け商用サポート
特徴
- Azure環境に最適化
- 無償で長期サポート
- Windows、Linux、macOSに対応
コスト
- 完全無償
- 商用サポート:Azureサブスクリプション必要
対象バージョン
- Java 11, 17, 21
Azul Zulu / Azul Platform Prime
提供元
Azul Systems
ライセンス
- Zulu:GPLv2 + Classpath Exception(無償)
- Platform Prime:商用ライセンス(有償)
サポート内容
- Zulu:LTS版の長期サポート
- Platform Prime:エンタープライズサポート
特徴
- パフォーマンス最適化
- C4ガベージコレクタ(Platform Primeのみ)
- 長期サポート
コスト
- Zulu:無償
- Platform Prime:有償
対象バージョン
- Java 6, 7, 8, 11, 17, 21, 25
Adoptium Eclipse Temurin
提供元
Eclipse Foundation(AdoptOpenJDK後継)
ライセンス
- GPLv2 + Classpath Exception(完全無償)
サポート内容
- LTS版:コミュニティによるサポート
- Java 8:少なくとも2026年まで
- Java 11:少なくとも2027年まで
- Java 17:少なくとも2029年まで
特徴
- コミュニティドリブン
- 多くのプラットフォーム対応
- Docker imageなど豊富なパッケージ
コスト
- 完全無償
対象バージョン
- Java 8, 11, 17, 21
BellSoft Liberica JDK
提供元
BellSoft
ライセンス
- GPLv2 + Classpath Exception(無償)
- 商用サポート:有償
サポート内容
- LTS版:長期サポート(有償)
特徴
- JavaFX同梱版あり
- 軽量版(Lite)あり
- 多くのプラットフォーム対応
コスト
- バイナリ:無償
- 商用サポート:有償
対象バージョン
- Java 8, 11, 17, 21, 25
ベンダー選択のポイント
どのベンダーのJavaを選ぶべきでしょうか?
環境別の推奨
AWS環境
→ Amazon Corretto
- AWS環境に最適化
- 無償で長期サポート
- パフォーマンスが良い
Azure環境
→ Microsoft Build of OpenJDK
- Azure環境に最適化
- 無償で長期サポート
- Azure Supportと統合
Red Hat Linux環境
→ Red Hat OpenJDK
- OSと統合されたサポート
- 長期サポート
- エンタープライズグレード
その他のLinux環境
→ Eclipse Temurin または Amazon Corretto
- 無償で長期サポート
- コミュニティサポートが充実
Windows / macOS環境
→ Eclipse Temurin または Azul Zulu
- 多くのプラットフォーム対応
- 無償で長期サポート
エンタープライズ環境(有償サポートが必要)
→ Oracle JDK または Red Hat OpenJDK
- 公式サポート
- SLA保証
- 技術サポート充実
機能別の選択
パフォーマンス重視
- Azul Platform Prime(C4ガベージコレクタ)
- Amazon Corretto(AWS最適化)
JavaFX必要
- BellSoft Liberica JDK(JavaFX同梱版)
軽量化したい
- BellSoft Liberica JDK Lite
コンテナ環境
- Eclipse Temurin(豊富なDocker image)
Oracle JDK vs OpenJDK:何が違う?
Oracle JDKとOpenJDKの違いを理解しましょう。
機能面の違い
Java 11以降
Oracle JDKとOpenJDKのソースコードは実質的に同一です。
同じ点
- 言語機能
- 標準ライブラリ
- パフォーマンス
- 互換性
Oracle JDKのみの機能(Java 11以降はほぼなし)
- Advanced Management Console(AMC)→ 2024年終了
- Java Flight Recorder(JFR)→ Java 11以降はOpenJDKにも含まれる
サポートの違い
Oracle JDK
- Premier Support:5年
- Extended Support:3年(LTS)
- 技術サポートあり
- SLA保証
OpenJDK(オリジナル)
- サポート期間:次のリリースまで(6ヶ月)
- 技術サポートなし
OpenJDK(サードパーティ)
- ベンダーによって異なる
- 長期サポートあり(多くの場合)
- 技術サポートあり(有償の場合が多い)
ライセンスの違い
Oracle JDK
- NFTC(一定期間無償)
- OTNライセンス(商用利用は有償)
- ライセンス違反リスクあり
OpenJDK
- GPLv2 + Classpath Exception
- 完全無償
- 商用利用自由
- ライセンス違反リスクなし
どちらを選ぶべきか?
Oracle JDKを選ぶべきケース
- 公式サポートが必要
- SLA保証が必要
- エンタープライズ環境
- 既存のOracle契約がある
OpenJDK(サードパーティ)を選ぶべきケース
- コストを抑えたい
- ライセンスリスクを避けたい
- クラウド環境(AWS、Azure)
- 一般的なWebアプリケーション
結論
2025年現在、ほとんどのケースでOpenJDK系のディストリビューション(Amazon Corretto、Microsoft Build of OpenJDK、Eclipse Temurinなど)が推奨されます。
サポート終了後のリスク
Javaのサポートが終了すると、どのようなリスクがあるのでしょうか。
1. セキュリティリスク
最も深刻な問題
新しいセキュリティ脆弱性が発見されても、パッチが提供されません。
具体的なリスク
- リモートコード実行(RCE)の脆弱性
- 認証バイパス
- データ漏洩
- サービス妨害攻撃(DoS)
影響範囲
- Webアプリケーション
- バックエンドシステム
- マイクロサービス
- APIサーバー
2. コンプライアンス違反
法的・規制的リスク
多くの業界規制やセキュリティ基準で、サポート終了ソフトウェアの使用が禁止されています。
該当する規制
- PCI DSS(クレジットカード業界)
- HIPAA(医療業界)
- SOX法(上場企業)
- GDPR(個人情報保護)
3. ライブラリ・フレームワークの非対応
開発の停滞
主要なライブラリやフレームワークが、古いJavaバージョンのサポートを終了します。
例
- Spring Framework:Java 8サポート終了(Spring 6以降)
- Jakarta EE:Java 11未満非対応
- Hibernate:古いバージョンのサポート終了
4. 技術的負債の増大
保守コストの増加
- 新機能の開発が困難
- バグ修正が複雑化
- 技術者の確保が困難
- 移行コストが増大
5. パフォーマンス問題
改善されない
新しいJavaバージョンで導入されたパフォーマンス改善が利用できません。
例
- Garbage Collectorの改善
- JITコンパイラの最適化
- メモリ効率の向上
バージョン選択ガイド
では、どのJavaバージョンを選ぶべきでしょうか?
新規プロジェクト
推奨:Java 21または Java 25
理由
- 最新の機能が使える
- 長期サポートが受けられる
- パフォーマンスが最適
- ライブラリの対応が良い
Java 21を選ぶ場合
- 安定性重視
- 多くの企業で採用実績
- 2026年9月までNFTC無償
Java 25を選ぶ場合
- 最新機能を使いたい
- 2028年9月までNFTC無償
- 長期的な視点
既存システムの移行
現在のバージョン別の推奨
Java 8を使用中
推奨:Java 21への移行
理由
- Java 8のサポートが終了している
- セキュリティリスクが高い
- ライブラリが非対応になり始めている
移行の難易度
- 高(大きな変更が必要)
- ラムダ式、Stream APIは移行しやすい
- リフレクション、内部APIの利用は変更必要
移行期間の目安
- 小規模:3〜6ヶ月
- 中規模:6〜12ヶ月
- 大規模:1〜2年
Java 11を使用中
推奨:Java 17またはJava 21への移行
理由
- Java 11のPremier Supportが終了
- Extended Supportは2032年まであるが、新機能がない
- Java 17/21への移行は比較的容易
移行の難易度
- 中(一部の変更が必要)
- 言語機能の変更は少ない
- ライブラリのバージョンアップが主な作業
移行期間の目安
- 小規模:1〜3ヶ月
- 中規模:3〜6ヶ月
- 大規模:6〜12ヶ月
Java 17を使用中
推奨:現状維持またはJava 21へ移行
理由
- Java 17は2026年9月までPremier Support
- Java 21への移行は比較的容易
- 急いで移行する必要はない
移行の難易度
- 低(変更は少ない)
- 互換性が高い
- Virtual Threadsなどの新機能を試せる
移行期間の目安
- 小規模:1〜2ヶ月
- 中規模:2〜4ヶ月
- 大規模:4〜6ヶ月
用途別の推奨
Webアプリケーション
→ Java 21
- Spring Boot 3.x対応
- 十分な実績
- パフォーマンスが良い
マイクロサービス
→ Java 21または Java 25
- Virtual Threads(軽量スレッド)
- メモリ効率が良い
- コンテナ環境に最適
Androidアプリ
→ Java 8相当(Androidの制約)
- Android StudioのJavaバージョンに準拠
- Kotlinの使用も検討
デスクトップアプリケーション
→ Java 17または Java 21
- JavaFXが必要な場合はLiberica JDKを検討
レガシーシステム
→ Java 11
- 大きな変更なしで移行可能
- 2032年までExtended Support
ディストリビューション選択
推奨の組み合わせ
AWS環境
- Java 21 + Amazon Corretto
Azure環境
- Java 21 + Microsoft Build of OpenJDK
オンプレミス(Linux)
- Java 21 + Red Hat OpenJDK(RHEL)
- Java 21 + Eclipse Temurin(その他)
オンプレミス(Windows)
- Java 21 + Eclipse Temurin
エンタープライズ(有償サポート必要)
- Java 21 + Oracle JDK
よくある質問
Q1: Java 8はいつまで使えますか?
A: 技術的には使えますが、推奨されません。
- Oracle JDKのPremier Support:2022年3月終了
- Extended Support:2030年12月まで(有償)
- OpenJDK:ベンダーによる(Amazon Correttoは2026年まで)
ただし、セキュリティリスクが非常に高いため、早急に新しいバージョンへの移行を検討すべきです。
Q2: Java 11と17、どちらに移行すべきですか?
A: Java 21をお勧めします。
- Java 11:Premier Support終了済み
- Java 17:2026年9月までPremier Support
- Java 21:2028年9月までPremier Support
移行コストはJava 11とJava 17でほぼ同じなので、より長期間サポートされるJava 21が最適です。
Q3: 非LTSバージョンは使うべきではないのですか?
A: 本番環境では推奨されません。
非LTSバージョンを使っても良いケース
- 開発環境
- テスト環境
- 新機能の検証
- 個人プロジェクト
本番環境ではLTS版を使うべき理由
- サポート期間が短い(6ヶ月)
- 頻繁な移行が必要
- 安定性が低い可能性
Q4: Oracle JDKとOpenJDK、どちらを使うべきですか?
A: ほとんどのケースでOpenJDK系ディストリビューション(Amazon Corretto、Eclipse Temurinなど)が推奨されます。
Oracle JDKを選ぶべきケース
- 公式サポート・SLAが必要
- エンタープライズ環境
- 既存のOracle契約がある
OpenJDK系を選ぶべきケース
- コストを抑えたい
- ライセンスリスクを避けたい
- クラウド環境
- 一般的なアプリケーション
Q5: LTSバージョンは何年ごとにリリースされますか?
A: 現在は2年ごとです。
- Java 17(2021年9月)
- Java 21(2023年9月)
- Java 25(2025年9月)
- Java 29(2027年9月予定)
以前は3年ごとでしたが、Java 17以降は2年サイクルに変更されました。
Q6: Java 17の無償期間が終了したと聞きましたが、どういうことですか?
A: Oracle JDK 17のNFTC(無償)ライセンスが2024年9月に終了しました。
詳細
- 2024年9月まで:NFTC(無償)
- 2024年10月以降:OTNライセンス(有償)
対応方法
- Java 21または25に移行(引き続きNFTC無償)
- OpenJDK系ディストリビューションに切り替え(完全無償)
- Oracle JDKの有償サポート契約を結ぶ
Q7: サードパーティのJavaディストリビューションは安全ですか?
A: 主要ベンダーは安全です。
信頼できるベンダー
- Amazon Corretto(AWS)
- Microsoft Build of OpenJDK(Microsoft)
- Red Hat OpenJDK(Red Hat)
- Eclipse Temurin(Eclipse Foundation)
- Azul Zulu(Azul Systems)
- BellSoft Liberica(BellSoft)
これらはすべてOpenJDKをベースにしており、定期的にセキュリティパッチが提供されます。
まとめ
Javaのサポート期間について、重要なポイントをまとめます。
重要なポイント
1. リリースサイクル
- 半年ごと:3月・9月
- LTS:2年ごと(奇数バージョン)
- 非LTS:6ヶ月サポート
2. 現在のLTSバージョン
- Java 25(2025年9月)← 最新
- Java 21(2023年9月)← 推奨
- Java 17(2021年9月)
- Java 11(2018年9月)← Premier Support終了
- Java 8(2014年3月)← 非推奨
3. 推奨バージョン
- 新規プロジェクト:Java 21または25
- 既存プロジェクト(Java 8):Java 21へ移行
- 既存プロジェクト(Java 11):Java 17または21へ移行
- 既存プロジェクト(Java 17):現状維持またはJava 21へ
4. 推奨ディストリビューション
- AWS環境:Amazon Corretto
- Azure環境:Microsoft Build of OpenJDK
- RHEL環境:Red Hat OpenJDK
- その他:Eclipse Temurin
- エンタープライズ(有償サポート):Oracle JDK
5. サポート終了後のリスク
- セキュリティ脆弱性
- コンプライアンス違反
- ライブラリの非対応
- 技術的負債の増大
- パフォーマンス改善なし
6. Oracle JDK vs OpenJDK
- 機能はほぼ同じ
- OpenJDK系が無償で推奨
- Oracle JDKは公式サポートが必要な場合のみ
7. ライセンスの注意点
- Java 17のNFTC:2024年9月終了
- Java 21のNFTC:2026年9月終了予定
- Java 25のNFTC:2028年9月終了予定
- OpenJDK系:常に無償
最後に
Javaのサポート体系は複雑ですが、基本を理解すれば適切な選択ができます。
重要な判断ポイント
- LTS版を選ぶ(本番環境)
- サポート期間を確認する
- ライセンスを理解する
- ベンダーを慎重に選ぶ
特に、Java 8を使い続けることは、セキュリティ的に非常に危険です。可能な限り早くJava 21への移行を計画してください。
また、Oracle JDKの無償期間(NFTC)にも注意が必要です。知らないうちにライセンス違反にならないよう、定期的にサポート状況を確認しましょう。
この記事が、あなたのJavaバージョン選択やサポート計画に役立てば幸いです。


コメント