java - 为什么JAVA_HOME没有设置但Gradle仍然可以运行?

标签 java gradle

请注意:这个问题不是一个骗局,任何读过它的人都会看到这一点。我不是在问如何在 Mac 上找到 JAVA_HOME`?我是在问未设置 JAVA_HOME 时 Gradle 如何运行。两个完全不同的问题。差异甚至在标题中。请仔细阅读问题!

<小时/>

这里是 Mac 10.11.6 (El Capitan) Java 开发人员。我的机器已经使用一年多了,并且一直在它上面构建 Java 应用程序。

在终端中,如果我运行 echo $JAVA_HOME 输出为空/空白:

myMachine:myDir myUser$ echo $JAVA_HOME

邮政编码。纳德达。没什么。但是如果我运行 which java 我得到:

myMachine:myDir myUser$ which java
/usr/bin/java

因此 Java 已安装,但 $JAVA_HOME 不知何故为空/null/空白。

如果我克隆this repo并运行 ./gradlew run 它完美执行:

./gradlew run
:compileJava UP-TO-DATE
:compileScala
:processResources UP-TO-DATE
:classes
:run
Hello!

BUILD SUCCESSFUL

Total time: 8.478 secs

我想知道:如果没有设置JAVA_HOME,那么Gradle如何成功运行?! 当通过brew安装Java时,不应该设置$JAVA_HOME吗?

<小时/>

更新:

当我echo $PATH时,我看到:

/Users/myUser/.rvm/gems/ruby-2.4.0/bin
/Users/myUser/.rvm/gems/ruby-2.4.0@global/bin
/Users/myUser/.rvm/rubies/ruby-2.4.0/bin
/opt/local/bin
/opt/local/sbin
/Users/myUser/.sdkman/candidates/scala/current/bin
/Users/myUser/.sdkman/candidates/sbt/current/bin
/Users/myUser/.sdkman/candidates/maven/current/bin
/Users/myUser/.sdkman/candidates/lazybones/current/bin
/Users/myUser/.sdkman/candidates/groovy/current/bin
/Users/myUser/.sdkman/candidates/gradle/current/bin
/Users/myUser/.sdkman/candidates/ant/current/bin
/usr/local/bin
/usr/bin
/bin
/usr/sbin
/sbin
/opt/X11/bin
/usr/local/go/bin
/Users/myUser/.rvm/bin
/Users/myUser/.rvm/bin

最佳答案

文档说:

Gradle uses whatever JDK it finds in your path.
Alternatively, you can set the JAVA_HOME environment variable to point to the 
installation directory of the desired JDK.

检查你的路径变量及其值,也许Java已经指向那里。

关于java - 为什么JAVA_HOME没有设置但Gradle仍然可以运行?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45219873/

相关文章:

java - Android studio - 无法完成 gradle 执行 - 打开 zip 文件时出错

java - Lex Bot 与 Rest Api 集成

java - 如何在java中使用selenium构建支持从右到左语言(如阿拉伯语)的自动化测试?任何代码示例

android - 在 Android 4.4 上运行 Espresso 测试?

grails - 如何在不设置密码的情况下在防火墙后面使用 Gradle,只需一个用户?

android - Gradle Espresso-在根项目中找不到任务connectedProductFlavorBuildTypeAndroidTest

java - 如何使用 jsonpath 计算成员?

java - 如何标准化 JHipster 应用程序中的 REST 错误?

Java 字符串删除标记包含数字

android - 依赖项更新后 Flutter 应用构建失败