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

新手上路,请多包涵

尝试运行 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 许可协议

阅读 843
2 个回答

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

/usr/bin/gradle 第70行:

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

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

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

原文由 James Barnett 发布,翻译遵循 CC BY-SA 3.0 许可协议

添加符号链接

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

原文由 Shashi 发布,翻译遵循 CC BY-SA 3.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题