尝试运行 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 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
/usr/bin/java
/etc/alternatives/java
/usr/lib/jvm/java-7-oracle/jre/bin/java
此外,我检查了.bash_profileor中没有重复的 JAVA_HOME 定义/etc/profile。
.bash_profile
/etc/profile
所以我的问题是 Gradle 如何/为什么找到/usr/lib/jvm/default-java,更重要的是我如何将它指向正确的目录?
/usr/lib/jvm/default-java
其他需要 JDK 的程序可以正常工作,所以我认为这是一个 Gradle 问题。我也尝试过重新安装 Gradle,但没有任何区别。
我正在运行 64 位 Xubuntu(Ubuntu 13.10 基础)
原来,我从 Ubuntu 13.10 存储库下载的特定 Gradle 二进制文件 本身 尝试导出JAVA_HOME
/usr/bin/gradle第 70 行:
/usr/bin/gradle
export JAVA_HOME=/usr/lib/jvm/default-java
注释掉这一行可以解决问题,并且 Gradle 会找到 Java 二进制文件的正确路径。
如果您只是从他们的网站下载二进制文件,则不会出现此问题,这是 Ubuntu存储库版本的问题。