Gradle 发现错误的JAVA_HOME即使它设置正确

2022-08-31 06:43:03

尝试运行 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_HOME设置正确且位于 PATH 上。java -version

# 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,但这没有任何区别。

我运行的是 64 位 Xubuntu(Ubuntu 13.10 基础)


答案 1

事实证明,我从Ubuntu 13.10存储库本身下载的特定Gradle二进制文件本身试图导出JAVA_HOME。感谢卢卡斯的建议。

/usr/bin/gradle第 70 行:

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

注释掉这一行可以解决问题,Gradle 会找到 Java 二进制文件的正确路径。

如果您只是从他们的网站下载二进制文件,则没有问题,这是Ubuntu存储库版本的问题。13.10版本似乎还存在一些其他问题。


答案 2

添加符号链接

sudo ln -s /usr/lib/jvm/java-7-oracle /usr/lib/jvm/default-java

推荐