Kotlin で構成するプロジェクトでGradle
を使用としたところ下記エラーで失敗
ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/java-11-openjdk-amd64/bin/java Please set the JAVA_HOME variable in your environment to match the location of your Java installation.
どうやら、JAVA_HOME の設定がかみあっていなさそう...
Gradle について
Gradle については以下を参照 https://gradle.org/
環境
- WSL:Ubuntu(Windows11)
調査
エラーの詳細を確認したいので、Gradle の動きを確認
コマンドの中身を確認
which gradle # 実行ファイルの場所 /mnt/c/gradle-7.4.2/bin/gradle
実行ファイルが mnt 配下のディレクト内にあることを確認
中身をvi
で開く
gradle の中身を確認
gradle ファイル内を以下の言葉で検索
Please set the JAVA_HOME variable in your environment to match the
おそらく、以下が原因
# Determine the Java command to use to start the JVM. if [ -n "$JAVA_HOME" ] ; then if [ -x "$JAVA_HOME/jre/sh/java" ] ; then # IBM's JDK on AIX uses strange locations for the executables JAVACMD=$JAVA_HOME/jre/sh/java else JAVACMD=$JAVA_HOME/bin/java fi if [ ! -x "$JAVACMD" ] ; then die "ERROR: JAVA_HOME is set to an invalid directory: $JAVA_HOME Please set the JAVA_HOME variable in your environment to match the location of your Java installation." fi else JAVACMD=java which java >/dev/null 2>&1 || die "ERROR: JAVA_HOME is not set and no 'java' command could be found in your PATH. Please set the JAVA_HOME variable in your environment to match the location of your
特に怪しいのがこの JAVACMD にパスを格納している部分
JAVACMD=$JAVA_HOME/bin/java
ちなみに、私の環境出でのJAVA_HOME
echo $JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/bin/java
なので、
-x "$JAVACMD"
部分では
/usr/lib/jvm/java-11-openjdk-amd64/bin/java/bin/java
にある実行ファイルを動かそうとしている
もちろんそのような場所に実行ファイルはないのでここが問題っぽい
修正
JAVA_HOME の修正
そもそも、JAVA_HOME
で直接実行ファイルを動かしているのが気持ち悪いので修正
vi ~/.bashrc
.bashrc
内のファイルを修正
export JAVA_HOME=/usr/lib/jvm/java-11-openjdk-amd64/bin
確認
echo $JAVA_HOME /usr/lib/jvm/java-11-openjdk-amd64/bin/java
次に gradle のJAVACMD
の値を修正
JAVACMD=$JAVA_HOME/java
これで、JAVACMD
が正しく動くはずなので確認
gradle -v Welcome to Gradle 7.4.2! Here are the highlights of this release: - Aggregated test and JaCoCo reports - Marking additional test source directories as tests in IntelliJ - Support for Adoptium JDKs in Java toolchains For more details see https://docs.gradle.org/7.4.2/release-notes.html ------------------------------------------------------------ Gradle 7.4.2 ------------------------------------------------------------ Build time: 2022-03-31 15:25:29 UTC Revision: 540473b8118064efcc264694cbcaa4b677f61041 Kotlin: 1.5.31 Groovy: 3.0.9 Ant: Apache Ant(TM) version 1.10.11 compiled on July 10 2021 JVM: 11.0.15 (Private Build 11.0.15+10-Ubuntu-0ubuntu0.20.04.1) OS: Linux 5.10.60.1-microsoft-standard-WSL2 amd64
正常に動作していることを確認できた
追記
JAVA_HOME自体はいろいろなところで使用されるので もしかしたら、JAVA_HOMEのみを修正したほうが良いかもしれない