search
LoginSignup
21

More than 5 years have passed since last update.

Organization

Java 9でGradleのエラー「Could not determine java version from '9.0.1'.」が出るときの対処方法

はじめに

Spring BootでGradleプロジェクトを触っていた時に「Could not determine java version from '9.0.1'.」というエラーに遭遇したので、その対処方法を書いておきます。
なお、エラーが発生した環境は下記の通りです。

  • macOS High Sierra(10.13.2)
  • Java Development Kit 9(9.0.1)
  • IntelliJ IDEA 2017.3(Ultimate Edition)
  • Spring Boot 2.0.0M7(Spring Initializr)
  • Gradle 4.2

障害の状況

IntelliJ IDEAにてSpring Initializrのテンプレートを利用して新規にプロジェクトを作成しました。
その際、Project SDKにはJava 9を、TypeにGradle Projectを選択しウィザードを進めていったのですが、作成されたプロジェクトでは「Could not determine java version from '9.0.1'.」のメッセージが表示されていました。

原因

これはビルドに用いるGradle 4.2がJava 9をサポートしていないことに起因しています。Java 8からJava 9に変わった際、バージョン番号の表記方法が「1.8.x」から「9.x.x」に変わったのですが、Gradle 4.2までは古い表記方法で解釈するように作られており、実行環境のJavaのバージョンを正確に特定できないがためにこのようなエラーが発生していたのです。
今回は、IntelliJ IDEA上で障害が発生しましたが、同様の現象はJavaのバージョン9以降とGradleのバージョン4.2以前の組み合わせであれば、上記以外の環境でも発生します。

対処方法

実はこの障害はGradle 4.2.1にてすでに修正されており、Gradleのバージョンを4.2.1以降にバージョンアップすれば解消できます。
ローカル・インストールしたGradleを利用している場合は、バージョン4.2.1以降のGradleにバージョンアップすれば解消しますし、Gradle Wrapperを利用している場合は、gradle-wrapper.propertiesのdistributionUrlでバージョン4.2.1以降のGradleを指定すれば解消します。
今回はGradle Wrapperを利用していたので、下記のように設定を変更しました。

gradle-wrapper.properties
#Fri Jul 28 13:37:07 BST 2017
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-4.2.1-bin.zip

まとめ

エラー・メッセージを元にネットで検索すると、Java 8を使うように促す回答がいくつか見つかります。でも、せっかくJava 9を使おうとしているのにJava 8に戻るのは少しもったいないですよね。Java 9を使うような新し物好きの方は、ぜひGradleも最新にアップデートしてみてください。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
What you can do with signing up
21