IntelliJで「Invalid source release: 17」エラーを解決する方法
問題概要
IntelliJ IDEAでJava 17を使用するGradleプロジェクトを作成した際に、「Cause: error: invalid source release: 17」というエラーが発生します。この問題は、開発環境のJavaバージョン設定に不整合がある場合に起こります。
原因分析
このエラーの主な原因は以下の通りです:
- 環境変数JAVA_HOMEが間違ったJavaバージョンを指している
- IntelliJのGradle JVM設定とプロジェクトSDKの不一致
- Gradleツールチェーンの設定不足
- システムに複数のJavaバージョンが存在する場合の競合
解決方法
方法1: Gradle JVMの設定変更(推奨)
最も一般的な解決策
この方法が最も効果的で、多くの場合で問題を解決します
- IntelliJで
File → Settings
(Windows/Linux) またはIntelliJ IDEA → Preferences
(macOS) を開く Build, Execution, Deployment → Build Tools → Gradle
に移動Gradle JVM
をプロジェクトで使用しているJava 17に設定する
方法2: 環境変数JAVA_HOMEの確認と設定
ターミナルで現在のJAVA_HOMEを確認:
# Linux/macOS
echo $JAVA_HOME
# Windows
echo %JAVA_HOME%
Java 17に設定:
# Linux/macOS
export JAVA_HOME=/path/to/openjdk-17
# Windows
set JAVA_HOME=path\to\openjdk-17
注意
環境変数を変更後は、IntelliJを再起動してください
方法3: build.gradleでのツールチェーン設定
プロジェクトのビルドファイルにJavaツールチェーンを明示的に設定:
java {
toolchain {
languageVersion = JavaLanguageVersion.of(17)
}
}
java {
toolchain {
languageVersion.set(JavaLanguageVersion.of(17))
}
}
方法4: IntelliJプロジェクト設定の確認
以下の設定がすべてJava 17に統一されていることを確認:
File → Project Structure → Project → Project SDK
File → Project Structure → Project → Language level
File → Project Structure → Modules → Sources → Language level
File → Project Structure → Modules → Dependencies → Module SDK
Settings → Build, Execution, Deployment → Compiler → Java Compiler → Project bytecode version
方法5: グローバルGradle設定の確認
~/.gradle/gradle.properties
(Windows: C:\Users\<username>\.gradle\gradle.properties
) に以下の設定を追加:
org.gradle.java.home=/path/to/jdk17
追加のトラブルシューティング
複数Javaバージョンがインストールされている場合
システムに複数のJavaバージョンが存在する場合、競合が発生することがあります:
# 使用中のJavaバージョンを確認
java -version
javac -version
# バージョンが異なる場合は、不要なバージョンをアンインストールするか
# パス設定を調整してください
コマンドラインとIDEの動作差
注意点
IntelliJで実行すると成功するが、ターミナルでのビルドが失敗する場合、環境変数JAVA_HOMEの設定が正しくない可能性があります
予防策
- プロジェクトごとの設定を採用:
.gradle
ファイルでJavaバージョンを明示的に指定 - チーム開発時の統一:全開発者が同じ環境設定を使用するように文書化
- CI/CD環境の確認:GitHub Actionsなどでも同様の設定が必要
# GitHub ActionsでのJava 17設定例
- uses: actions/setup-java@v4
with:
distribution: 'temurin'
java-version: '17'
まとめ
「Invalid source release: 17」エラーは、Javaバージョン関連の設定不一致が原因です。最も効果的な解決方法は:
- IntelliJのGradle JVM設定をJava 17に変更
- 環境変数JAVA_HOMEの確認と適切な設定
- build.gradleでのツールチェーン明示的指定
これらの設定を統一することで、問題は解決するはずです。設定変更後は、必ずIntelliJの再起動とクリーンビルドの実行をお勧めします。