[小ネタ] IntelliJ IDEAのJavaバージョンを指定することでGradleのエラーを解消する
こんにちは。サービスグループの武田です。
古めのGradleを使用しているJavaのプロジェクトをIntelliJ IDEAで開いたところ、次のようなエラーが出てビルドできない事象に遭遇しました。
Cannot determine classpath for resource 'java/sql/SQLException.class' from location 'jrt:/java.sql/java/sql/SQLException.class'. The project uses Gradle 2.12 which is incompatible with IDEA running on Java 10 or newer. See details at https://github.com/gradle/gradle/issues/8431 Possible solution: - Upgrade Gradle wrapper to 4.8.1 version and re-import the project
メッセージにも書かれているように、Gradleのバージョンを上げるのが手っ取り早いです。しかし諸々の事情により上げられないことも多いでしょう。今回はIntelliJ IDEAを実行するJavaのバージョンを落とすことで解決できたので紹介します。
設定方法
Gradleを実行するJavaのバージョンのみを指定することはできないようです。代わりに、IntelliJ IDEAを起動するJavaバージョンを指定することで解決できました。
設定方法そのものは公式ドキュメントにありますので、こちらも参照ください。
IntelliJ IDEAの起動Javaランタイムを変更する - 公式ヘルプ | IntelliJ IDEA
まずは設定画面を開き、 Choose Runtime のプラグインをインストールします。
次に、Cmd + Shift + A
でアクションの検索を開き、Choose Runtime
を実行します。
Javaのランタイムを指定して[install]ボタンを押下します。画像ではCoretto 8を指定しています。
選択すると再起動されます。再起動後、自動的にGradleが実行され、エラーなく実行できました。
まとめ
エラーメッセージにissueのURLも記載されておりとても丁寧ですね。とはいえ調べるのに時間はかかってしまったのですが。常に最新版に追従できるのが理想ですが、そうできない状況でもしっかり対応していきましょう。