1. ホーム
  2. java

[解決済み] JAVA_HOME が正しく設定されているにもかかわらず、Gradle が間違った JAVA_HOME を検出する。

2022-05-02 14:51:55

質問

gradleを実行しようとすると、以下のエラーが発生します。

# gradle

ERROR: JAVA_HOME is set to an invalid directory: /usr/lib/jvm/default-java

Please set the JAVA_HOME variable in your environment to match the
location of your Java installation.

しかし、JAVA_HOME変数を確認すると、こうなります。

# echo $JAVA_HOME 
/usr/lib/jvm/java-7-oracle

私のJAVA_HOMEは.bashrcで定義されており、それがソースとして設定されていることを再確認しました。

実行中 java -version は、JAVA_HOMEが正しく設定され、PATH上にあることを確認します。

# java -version
java version "1.7.0_51"
Java(TM) SE Runtime Environment (build 1.7.0_51-b13)
Java HotSpot(TM) 64-Bit Server VM (build 24.51-b03, mixed mode)

また、確認したところ /usr/bin/java へのシンボルリンク /etc/alternatives/java に正しくシンボリックリンクします。 /usr/lib/jvm/java-7-oracle/jre/bin/java

さらに、JAVA_HOMEの定義が重複しないように .bash_profile または /etc/profile .

そこで質問ですが、Gradle はどのように/なぜ /usr/lib/jvm/default-java そしてさらに重要なのは、正しいディレクトリを指定するにはどうすればよいかということです。

JDKを必要とする他のプログラムは問題なく動作するので、私はGradleの問題だと思います。また、Gradleを再インストールしてみましたが、何の変化もありませんでした。

64bit Xubuntu (Ubuntu 13.10 base)を使用しています。

解決方法を教えてください。

Ubuntu 13.10 リポジトリからダウンロードした特定の Gradle バイナリが それ自体 はJAVA_HOMEをエクスポートしようとします。おかげさまで ルーカス をご提案いただきました。

/usr/bin/gradle 70行目をご覧ください。

export JAVA_HOME=/usr/lib/jvm/default-java

この行をコメントアウトすることで問題が解決され、GradleはJavaバイナリへの正しいパスを見つけます。

バイナリをダウンロードするだけなら ウェブサイト はこの問題が発生しません。 Ubuntuのレポ版での問題です。 また、13.10版では他にもいくつか問題があるようです。