尝试运行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基础)
16 回答
创建指向default-java目录的符号链接 .
你可以找到你的java目录
我也有这个问题 . 它说错误的目录是正确的 . 所以我刚刚创建了一个名为JAVA_HOME的局部变量,省略了final / bin / java . 它对我来说很好 .
在我的dockercontainer(最小的没有找到java的问题)是,没有安装“哪个” . 使用在./gradlew中找到的gradlew使用gradlew来组合项目java安装解决了这个问题 .
事实证明,我从Ubuntu 13.10存储库本身下载的特定Gradle二进制文件试图导出JAVA_HOME . 感谢Lucas提出建议 .
/usr/bin/gradle
第70行:注释掉这一行解决了这个问题,Gradle找到了Java二进制文件的正确路径 .
如果你只是从他们的_2445569下载二进制文件它没有这个问题,这是Ubuntu repo版本的一个问题 . There also seem to be some other issues with 13.10 version.
添加符号链接
解决方案是让JAVA_HOME == dir在javac所在的bin之上
好的,所以终于在实际的javac上面找到了bin,所以这样做
以上可以简化并推广到
对我来说这个错误是由于 Gradle 安装为 sudo 而我尝试作为默认用户运行Gradle .
尝试:
要么
尝试安装
gradle
的最新版本,如果我们从ubuntu repo安装,它将安装旧版本,(对我而言,它是gradle 1.4) . 在旧版本中,它将java home从gradle设置为
export JAVA_HOME=/usr/lib/jvm/default-java
. 最新版本没有这个问题 .你
JAVA_HOME
你的JAVA_HOME
?如果不导出,该设置将不会传播到该shell内部启动的命令 . 此外,java -version
不使用JAVA_HOME
,而是使用路径中找到的第一个java
. 确保你的.bashrc
看起来像这样:我有同样的问题,但我没有在第70行的gradle文件中找到最新版本2.13的导出命令,但我理解那里有一个愚蠢的错误,即关注,
如果在gradle文件夹/ bin /中没有在gradle文件中找到带有导出命令的第70行,那么检查〜/ .bashrc,如果找到
export JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64/bin/java
,则从此行中删除/bin/java
,如JAVA_HOME==/usr/lib/jvm/java-7-openjdk-amd64
,并在路径中> >>而不是这个export PATH=$PATH:$HOME/bin:JAVA_HOME/
,它将是export PATH=$PATH:$HOME/bin:JAVA_HOME/bin/java
. 然后运行source ~/.bashrc
.原因是,如果你检查你的gradle文件,你会在第70行(如果没有导出命令)或第75行找到,
这发生在我的情况下 .
我在Ubuntu上运行以下命令时遇到了这个问题:
为了解决这个问题,我做了以下步骤:
将JAVA_HOME添加到/ etc / environment:
加:
保存后,阅读:
最后,您可以运行build命令 .
对我来说,Eclipse中外部工具配置的参数部分的显式设置是问题所在 .
您还可以转到gradle安装文件夹中的bin文件夹,并更正gradle.bat文件中的JAVA_HOME参数 . 在我的例子中,我的JAVA_HOME设置为c:\ Program files \ java \ bin gradle.bat中的JAVA_HOME设置为%JAVA_HOME%\ bin \ java.exe .
我纠正了gradle.bat中的JAVA_HOME并且它有效 .
谢谢!!!
如果您的GRADLE_HOME和JAVA_HOME环境设置正确,请检查您的JDK目录并确保在下面的路径下有 java.exe 文件 .
如gradle.bat文件中提到的错误
它无法找到您的Java安装 . 所以找到并设置
如果一切正确的话
%JAVA_HOME%/bin
这适用于我(我的帐户被客户端禁用,他们的管理员已从我的目录中删除了java.exe . )
[Windows]如前所述,看起来.bat -file尝试从
%JAVA_HOME%/bin/java.exe
找到java.exe,因此它找不到它,因为bin
在路径中重复两次 . 从gradle.bat中删除额外的/bin
.在运行命令之前,请尝试输入:
path_to_java_home
是bin/java
所在的文件夹 .如果正确安装了java,您可以使用以下命令找到它的位置:
不要忘记将
bin/java
从路径末尾移除JAVA_HOME