请注意:这个问题不是一个骗局,任何读过它的人都会看到这一点。我不是在问如何在 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/