カテゴリ: Spring 更新日: 2026/01/01

Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?

Spring Boot × Javaバージョン対応表:3.5/3.4/3.3 と Java 21/17の互換性
Spring Boot × Javaバージョン対応表:3.5/3.4/3.3 と Java 21/17の互換性

先生と生徒の会話形式で理解しよう

生徒

「Spring Bootの最新バージョンって、Javaのどのバージョンと一緒に使えるんですか?」

先生

「良いところに気がつきましたね。Spring Bootのバージョンごとに、対応しているJavaのバージョンが決まっているんですよ。」

生徒

「へぇ〜!じゃあSpring Boot 3.5とか3.4は、Java 21とか使えるんですか?」

先生

「もちろん、それぞれに対応表があるので、一緒に確認していきましょう!」

1. Spring BootとJavaのバージョン互換性を知る重要性

1. Spring BootとJavaのバージョン互換性を知る重要性
1. Spring BootとJavaのバージョン互換性を知る重要性

Spring BootとJavaの組み合わせが合っていないと、ビルドは通っても本番で動かない、あるいは起動すらできない――という事故につながります。特に新しいSpring Bootでは対応するJavaが絞られるため、「どのBootに、どのJavaが合うか」を最初に押さえることが安定運用の近道です。

実務ではLTS(長期サポート)であるJava 21/17を使う場面が多く、互換性を把握しておけば、開発・テスト・本番の環境差で起こるトラブルを未然に防げます。例えば、ローカルをJava 21でコンパイルし、本番のJREがJava 17のままだと、次のような起動エラーが出ることがあります。


java.lang.UnsupportedClassVersionError: ... has been compiled by a more recent version of the Java Runtime
(Unsupported class file major version 65)

初心者向けの簡単チェック(小さなサンプル)


# 1) 実行中JDKのバージョンを確認
java -version

# 2) プロジェクトの設定ファイルで指定バージョンを確認
#   - Gradle: build.gradle / gradle.properties
#   - Maven : pom.xml

# 3) 記事内の「対応表(後述)」と見比べて合っているかを確認

ポイントは、〈実行するJRE〉と〈ビルドに使うJDK〉、そして〈Spring Bootの対応範囲〉の三つをそろえること。たったこれだけで、よくある「起動できない」「意味不明なエラーが出る」を大幅に減らせます。

2. Spring Boot 3.5/3.4/3.3 と Java 21/17 の対応表

2. Spring Boot 3.5/3.4/3.3 と Java 21/17 の対応表
2. Spring Boot 3.5/3.4/3.3 と Java 21/17 の対応表

まずは「どのSpring Bootに、どのJavaが対応しているか」を一覧で確認しましょう。表の見方はかんたんです。左があなたのSpring Bootの系(3.5・3.4・3.3など)、右が一緒に使えるJavaの系(21・17)です。自分の組み合わせが表に含まれていれば基本OK、含まれていなければ要見直しです。

Spring Bootバージョン 対応するJavaバージョン
3.5.x Java 21 / Java 17
3.4.x Java 21 / Java 17
3.3.x Java 21 / Java 17
3.2.x Java 17(Java 21は一部非対応)
3.1.x Java 17

使い方のコツ(例):
「Boot 3.5 × Java 21」はOK/「Boot 3.4 × Java 17」もOK。いっぽう「Boot 3.2 × Java 21」は非対応の箇所が残るため避けるのが安全です。迷ったら、表で交差する組み合わせかどうかを最初に確認しましょう。

初心者向けミニサンプル(自分の環境を3ステップで照合)


# 1) Spring Bootの版をメモ(例: 3.4.2)
#    build.gradle / pom.xml の指定値をチェック
# 2) Javaの版を確認
java -version   # 例: "21" または "17"
# 3) 上の対応表で「行(Boot)」×「列(Java)」が合っていればOK
#    合わなければ、Bootを上げる or Javaを合わせる

ポイントは「表に載っている組み合わせを選ぶ」こと。これだけで起動エラーや不可解な挙動を避けやすくなります。次の章の詳細を見る前に、まずはあなたの現在値を表に当てて確認してみてください。

3. Javaバージョンごとの特徴と選び方

3. Javaバージョンごとの特徴と選び方
3. Javaバージョンごとの特徴と選び方

Spring Bootに対応しているJavaバージョンの中でも、Java 21とJava 17には違いがあります。

  • Java 21:最新のLTS。レコードパターン、シーケンシャルなスレッド管理の改善などが含まれる。
  • Java 17:従来のLTS。すでに多くの企業で実績あり。移行時の安定性重視ならこちら。

初めてSpring BootとJavaを扱うなら、現場の要件やライブラリ対応状況に応じて、Java 17から始めるのも安心です。すでにJava 21対応のプロジェクトやライブラリを使う場合は、Spring Boot 3.3以上を選ぶと良いでしょう。

4. GradleやMavenでのJavaバージョン指定方法

4. GradleやMavenでのJavaバージョン指定方法
4. GradleやMavenでのJavaバージョン指定方法

実際にSpring BootのプロジェクトでJavaのバージョンを指定するには、ビルドツールで設定します。

たとえば、GradleでJava 21を使うには以下のように設定します。


java {
    sourceCompatibility = JavaVersion.VERSION_21
    targetCompatibility = JavaVersion.VERSION_21
}

Mavenの場合はこちら:


<properties>
    <java.version>21</java.version>
</properties>

こうした記述があるかどうかを確認することで、プロジェクトが使用するJavaバージョンを明確にできます。

5. Spring Bootのバージョン確認方法と変更方法

5. Spring Bootのバージョン確認方法と変更方法
5. Spring Bootのバージョン確認方法と変更方法

既存のプロジェクトでSpring Bootのバージョンを確認したい場合、build.gradlepom.xmlファイル内のバージョン指定を見てみましょう。


plugins {
    id 'org.springframework.boot' version '3.5.0'
}

バージョンを変更する際は、他の依存関係がそのバージョンに対応しているかも一緒に確認することが大切です。特にセキュリティ関連のライブラリや、テンプレートエンジン(Thymeleafなど)は注意が必要です。

6. Spring BootとJavaバージョンの注意点まとめ

6. Spring BootとJavaバージョンの注意点まとめ
6. Spring BootとJavaバージョンの注意点まとめ
  • Spring Boot 3.5・3.4・3.3 は Java 21 / Java 17 に対応
  • Java 21を使うにはSpring Boot 3.3以降が推奨
  • プロジェクトのbuild.gradleまたはpom.xmlでバージョン指定を確認
  • Java 21を使うなら、ライブラリの対応状況にも注意

Spring BootのバージョンとJavaバージョンの互換性を意識しておくことで、よりスムーズにアプリケーション開発を進めることができます。

まとめ

まとめ
まとめ

本記事では、Spring Bootの各バージョン(3.5、3.4、3.3)がどのJavaバージョン(Java 21、Java 17)に対応しているのかを詳しく解説しました。特にSpring Boot 3.3以降であれば、Java 21という最新のLTSバージョンにも正式対応しており、今後の開発や運用において非常に重要なポイントになります。

Javaのバージョンを誤って選択すると、ビルドエラーやランタイムでの例外が発生する可能性があります。したがって、Spring BootとJavaの対応表を事前に確認し、開発環境に適したバージョンを選ぶことが、開発効率の向上やバグの削減につながります。

さらに、GradleやMavenなどのビルドツールを使って、JavaバージョンやSpring Bootのバージョンを正しく設定する方法も理解できたことで、実際のプロジェクトに応用できる力も身につきました。

また、Java 21とJava 17のどちらを使うべきかという選択も、LTSであることやライブラリ対応の状況などを踏まえた判断が必要です。現場の要件や将来のアップデートも視野に入れて選ぶことが求められます。

例えば、以下のようにGradleでJava 17に設定するコードを使えば、互換性のある環境を簡単に整えることができます。


java {
    sourceCompatibility = JavaVersion.VERSION_17
    targetCompatibility = JavaVersion.VERSION_17
}

逆に、Java 21を活用して最新機能を取り入れたい場合は、Spring Bootのバージョンも必ず3.3以降を選びましょう。以下はJava 21を指定した場合のMaven設定の一例です。


<properties>
    <java.version>21</java.version>
</properties>

これらの情報を正しく理解しておけば、Spring Bootのアップグレード時やJavaバージョンの移行作業もスムーズに行えます。開発の品質とスピードを両立するためにも、互換性情報を定期的に確認する習慣を持つと良いでしょう。

先生と生徒の振り返り会話

生徒

「Spring Boot 3.5とか3.4がJava 21とちゃんと対応してるってわかって安心しました!」

先生

「そうですね。プロジェクトによってはJava 17を使い続ける選択もあるので、適材適所で選ぶことが大切ですよ。」

生徒

「Javaバージョンの指定って、GradleやMavenで簡単にできるんですね。今まであんまり意識してませんでした。」

先生

「ビルド設定はプロジェクトの土台ですから、しっかり理解しておくと開発全体が安定します。Spring BootとJavaの対応関係は、これからも重要なチェックポイントになりますよ。」

生徒

「これから新しくSpring Bootのプロジェクトを作るときは、バージョンの組み合わせにもちゃんと気をつけます!」

先生

「すばらしい心がけです。今後もJavaとSpringの関係を意識して、よりよい開発ができるように頑張っていきましょう。」

この記事を読んだ人からの質問

この記事を読んだ人からの質問
この記事を読んだ人からの質問

プログラミング初心者からのよくある疑問/質問を解決します

Spring Boot 3.5はJava 21と完全に互換性がありますか?

はい、Spring Boot 3.5はJava 21に正式対応しており、Java 17とも互換性があります。両方のバージョンで使用することが可能です。
カテゴリの一覧へ
新着記事
JavaのHttpServletResponseWrapperを完全解説!初心者でも理解できるレスポンス処理のしくみ
JavaのScannerクラスの使い方を徹底解説!初心者でも簡単に学べる入力処理
JavaのArrayListクラスとaddメソッドを完全解説!初心者でもわかるリスト操作
Javaの@Idアノテーションを徹底解説!初心者でもわかるデータベースとの連携方法
人気記事
No.1
Java&Spring記事人気No1
Spring BootとJavaの互換性一覧!3.5/3.4/3.3はJava 21・17に対応してる?
No.2
Java&Spring記事人気No2
Javaのラムダ式で配列を扱う!Arrays.streamの基本と注意点を初心者向けに解説
No.3
Java&Spring記事人気No3
JavaのRuntimeExceptionを完全解説!初心者でもわかるjava.langパッケージの基礎
No.4
Java&Spring記事人気No4
JavaのBigDecimalクラスcompareToメソッド完全ガイド!初心者でもわかる大小比較の基本
No.5
Java&Spring記事人気No5
JavaのIntegerクラスの使い方を完全ガイド!初心者でもわかる整数操作
No.6
Java&Spring記事人気No6
Springの@Serviceアノテーションの使い方を徹底解説!初心者でもわかるSpring フレームワーク入門
No.7
Java&Spring記事人気No7
Javaの@SuppressWarningsアノテーションの使い方を完全ガイド!初心者でもわかる警告の抑制方法
No.8
Java&Spring記事人気No8
JSPとは何か?初心者向けにできること・仕組み・特徴をやさしく解説