[小ネタ] IntelliJ IDEAのJavaバージョンを指定することでGradleのエラーを解消する

古めのGradleを使用しているJavaのプロジェクトをIntelliJ IDEAで開いたところ、エラーが出てビルドできない事象に遭遇しました。IntelliJ IDEAを実行するJavaのバージョンを落とすことで解決できたので紹介します。
2020.04.09

こんにちは。サービスグループの武田です。

古めの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も記載されておりとても丁寧ですね。とはいえ調べるのに時間はかかってしまったのですが。常に最新版に追従できるのが理想ですが、そうできない状況でもしっかり対応していきましょう。