尝试运行 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
此外,我检查过 .bash_profile
或 /etc/profile
中没有重复的 JAVA_HOME 定义。
所以我的问题是 Gradle 如何/为什么找到 /usr/lib/jvm/default-java
,更重要的是我如何将它指向正确的目录?
其他需要 JDK 的程序运行良好,所以我认为这是一个 Gradle 问题。我也尝试过重新安装 Gradle,但没有任何区别。
我正在运行 64 位 Xubuntu(Ubuntu 13.10 基础)
原文由 James Barnett 发布,翻译遵循 CC BY-SA 4.0 许可协议
事实证明,我从 Ubuntu 13.10 存储库下载的特定 Gradle 二进制文件 本身 试图导出 JAVA_HOME。感谢 Lucas 的建议。
/usr/bin/gradle
第70行:注释掉这一行解决了问题,Gradle 找到了 Java 二进制文件的正确路径。
如果您只是从他们的 网站 下载二进制文件,则不会出现此问题,这是 Ubuntu 存储库版本的问题。 13.10 版本似乎还存在一些其他问题。