【发布时间】:2014-04-13 23:45:39
【问题描述】:
尝试运行 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 基础版)
【问题讨论】:
-
请提供完整的错误输出。就目前而言,尚不清楚消息来自何处。另外,您有
/usr/lib/jvm/default-java目录或符号链接吗?你是如何安装 Gradle 的? -
我已经更新了 Q,但这几乎是完整的错误输出。没有
/usr/lib/jvm/default-java目录。使用 apt 安装(apt-get install gradle) -
Gradle 启动脚本不需要设置
JAVA_HOME。如果设置了JAVA_HOME,则脚本使用$JAVA_HOME/bin/java运行Gradle。否则,它使用java(即java必须在PATH上)。也许(第三方)apt 包使用了修改后的启动脚本。 -
是的,看起来我从那里得到二进制文件的任何 ppa 都已硬编码并将 JAVA_HOME 导出到
usr/lib/jvm/defult-java。感谢您的帮助 -
你是
source ~/.bashrc,还是在设置JAVA_HOME后重启机器?
标签: java linux gradle environment-variables