Skip to content

IntelliJで「Invalid source release: 17」エラーを解決する方法

問題概要

IntelliJ IDEAでJava 17を使用するGradleプロジェクトを作成した際に、「Cause: error: invalid source release: 17」というエラーが発生します。この問題は、開発環境のJavaバージョン設定に不整合がある場合に起こります。

原因分析

このエラーの主な原因は以下の通りです:

  1. 環境変数JAVA_HOMEが間違ったJavaバージョンを指している
  2. IntelliJのGradle JVM設定とプロジェクトSDKの不一致
  3. Gradleツールチェーンの設定不足
  4. システムに複数のJavaバージョンが存在する場合の競合

解決方法

方法1: Gradle JVMの設定変更(推奨)

最も一般的な解決策

この方法が最も効果的で、多くの場合で問題を解決します

  1. IntelliJで File → Settings (Windows/Linux) または IntelliJ IDEA → Preferences (macOS) を開く
  2. Build, Execution, Deployment → Build Tools → Gradle に移動
  3. Gradle JVM をプロジェクトで使用しているJava 17に設定する

Gradle JVM設定

方法2: 環境変数JAVA_HOMEの確認と設定

ターミナルで現在のJAVA_HOMEを確認:

bash
# Linux/macOS
echo $JAVA_HOME

# Windows
echo %JAVA_HOME%

Java 17に設定:

bash
# Linux/macOS
export JAVA_HOME=/path/to/openjdk-17

# Windows
set JAVA_HOME=path\to\openjdk-17

注意

環境変数を変更後は、IntelliJを再起動してください

方法3: build.gradleでのツールチェーン設定

プロジェクトのビルドファイルにJavaツールチェーンを明示的に設定:

groovy
java {
    toolchain {
        languageVersion = JavaLanguageVersion.of(17)
    }
}
kotlin
java {
    toolchain {
        languageVersion.set(JavaLanguageVersion.of(17))
    }
}

方法4: IntelliJプロジェクト設定の確認

以下の設定がすべてJava 17に統一されていることを確認:

  1. File → Project Structure → Project → Project SDK
  2. File → Project Structure → Project → Language level
  3. File → Project Structure → Modules → Sources → Language level
  4. File → Project Structure → Modules → Dependencies → Module SDK
  5. Settings → Build, Execution, Deployment → Compiler → Java Compiler → Project bytecode version

方法5: グローバルGradle設定の確認

~/.gradle/gradle.properties (Windows: C:\Users\<username>\.gradle\gradle.properties) に以下の設定を追加:

properties
org.gradle.java.home=/path/to/jdk17

追加のトラブルシューティング

複数Javaバージョンがインストールされている場合

システムに複数のJavaバージョンが存在する場合、競合が発生することがあります:

bash
# 使用中のJavaバージョンを確認
java -version
javac -version

# バージョンが異なる場合は、不要なバージョンをアンインストールするか
# パス設定を調整してください

コマンドラインとIDEの動作差

注意点

IntelliJで実行すると成功するが、ターミナルでのビルドが失敗する場合、環境変数JAVA_HOMEの設定が正しくない可能性があります

予防策

  1. プロジェクトごとの設定を採用.gradleファイルでJavaバージョンを明示的に指定
  2. チーム開発時の統一:全開発者が同じ環境設定を使用するように文書化
  3. CI/CD環境の確認:GitHub Actionsなどでも同様の設定が必要
yaml
# GitHub ActionsでのJava 17設定例
- uses: actions/setup-java@v4
  with:
    distribution: 'temurin'
    java-version: '17'

まとめ

「Invalid source release: 17」エラーは、Javaバージョン関連の設定不一致が原因です。最も効果的な解決方法は:

  1. IntelliJのGradle JVM設定をJava 17に変更
  2. 環境変数JAVA_HOMEの確認と適切な設定
  3. build.gradleでのツールチェーン明示的指定

これらの設定を統一することで、問題は解決するはずです。設定変更後は、必ずIntelliJの再起動とクリーンビルドの実行をお勧めします。