在 OSX 上运行 ./gradlew 时 JAVA_HOME 设置为无效目录

标签 java android macos gradle

我尝试从 Android 项目目录运行 ./gradlew,但出现以下错误:

ERROR: JAVA_HOME is set to an invalid directory: /Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

Please set the JAVA_HOME variable in your environment to match the location of your Java installation.

我尝试过的事情:

  1. 导航到 /Library/Java/JavaVirtualMachinesjdk1.8.0_11.jdk存在,jdk1.7.0_79.jdk

  2. 也存在
  3. which java 打印出 /usr/bin/java

  4. printenv 打印

...

JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home JDK_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_11.jdk/Contents/Home

...

  1. javac -version 打印 javac 1.8.0_11

  2. which javac 打印 /usr/bin/javac

最佳答案

检查/usr/libexec/java_home 是否存在。如果是,则尝试运行

export JAVA_HOME=`/usr/libexec/java_home`

并重新运行您的 gradlew 构建。如果有效,则将其永久化

echo export "JAVA_HOME=\$(/usr/libexec/java_home)" >> ~/.bash_profile

关于在 OSX 上运行 ./gradlew 时 JAVA_HOME 设置为无效目录,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34326437/

相关文章:

Java将字符串解析为double

android - 从 ViewPager 中删除 fragment

python - 如何将 xlsx 转换为制表符分隔文件

java - 一种文字冒险游戏战斗系统的方法

java - 如何在二叉树中搜索一个节点并返回它?

java - JNI NewByteArray 内存泄漏

android - 如何在 Android 中调用 getContentResolver()?

安卓 OpenGL ES 2.0

objective-c - 如何在运行时检查 Mac OS X 版本

swift - CoreMIDI 目标的困惑