使用捆绑在 Android Studio 中的 JDK 作为 Mac 上的 JAVA_HOME
Using JDK that is bundled inside Android Studio as JAVA_HOME on Mac
我试图打开 Android 设备监视器,Studio 向我显示了这条消息 =-O :
这让我感到惊讶,因为如果我没有安装任何 Java,我怎么能够开发 Android 应用程序?!其实AndroidStudio自带捆绑JDK/JRE(位于/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
),但是系统找不到:执行usr/libexec/java_home
给出
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
将 $JAVA_HOME
设置为 /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
没有帮助 — source .bash_profile
不喜欢它是一个目录。
问题:我不想安装新的 JDK 如果我已经在 Android Studio 中安装了一个。如何将其设置为系统默认值?
解决方案:
- Big Sur 之前的 MacOS 版本:将行
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/
添加到主目录中的 .bash_profile
文件。 运行 source ~/.bash_profile
更新终端。
- Catalina、Big Sur、Mentere 及更高版本:将第
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
行添加到主目录中的 .zshenv
文件。 运行 source ~/.zshenv
更新终端。
之后,运行 java -version
给出了这个输出,Java开始正常执行:
openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)
至于 Android 设备监视器 — 它仍然需要这个古老的 JRE 版本 6。
我刚刚在 Big Sur 上全新安装了 Android Studio Arctic Fox 2020.3.1,我不得不使用以下内容。
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home/
关于一个略有不同的主题,即使使用正确的 JAVA_HOME
,~/Library/Android/sdk/tools/bin/sdkmanager
也无法启动。我必须安装“Android SDK 命令行工具(最新)”(来自 Android Studio)并改用 ~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager
。
核心问题是从 Android Studio Arctic Fox 开始,捆绑的目的地 java 已更改为:
/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/
到:
/Applications/Android Studio.app/Contents/jre/Contents/Home/
您只需将 .bash_profile
中的 JAVA_HOME env 变量更改为新的正确路径(注意 space 字符,最简单的方法是在双引号中指定路径)。并重新启动终端或 运行 source ~/.bash_profile
.
正如 dimezis 所指出的,JAVA_HOME 可能正在工作,但 /user/libexec/java_home 仍然损坏。
这是因为在Mac中,java_home
和JAVA_HOME
是不同的。 JAVA_HOME
是将在大多数应用程序和环境中使用的环境变量/路径,而 java_home
是系统用于 运行 java 的实际可执行文件。显然,某些 Mac 应用程序(如 Xcode)将忽略 JAVA_HOME
路径并使用 java_home
可执行文件
因此,为了在 Mac 中使用 Android Studio Embedded JDK 作为默认值 Java,请复制整个嵌入式 jdk 文件夹/Applications/Android Studio.app/Contents/jre/jdk
到默认 Java 库文件夹 /Library/Java/JavaVirtualMachines/
在此之后,将您的 .bash_profile
或 .zshrc
设置为:
export JAVA_HOME=$(/usr/libexec/java_home)
这将确保您的 JAVA_HOME 和 java_home 指向相同的 java 安装。
在我的例子中,用 \
转义不起作用,但用 "
转义整个路径工作正常。请重新打开终端以查看更改或 运行 source ~/.zshenv
以更新终端。
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home/"
我试图打开 Android 设备监视器,Studio 向我显示了这条消息 =-O :
这让我感到惊讶,因为如果我没有安装任何 Java,我怎么能够开发 Android 应用程序?!其实AndroidStudio自带捆绑JDK/JRE(位于/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
),但是系统找不到:执行usr/libexec/java_home
给出
Unable to find any JVMs matching version "(null)".
No Java runtime present, try --request to install.
将 $JAVA_HOME
设置为 /Applications/Android Studio.app/Contents/jre/jdk/Contents/Home
没有帮助 — source .bash_profile
不喜欢它是一个目录。
问题:我不想安装新的 JDK 如果我已经在 Android Studio 中安装了一个。如何将其设置为系统默认值?
解决方案:
- Big Sur 之前的 MacOS 版本:将行
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/jdk/Contents/Home/
添加到主目录中的.bash_profile
文件。 运行source ~/.bash_profile
更新终端。 - Catalina、Big Sur、Mentere 及更高版本:将第
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home
行添加到主目录中的.zshenv
文件。 运行source ~/.zshenv
更新终端。
之后,运行 java -version
给出了这个输出,Java开始正常执行:
openjdk version "1.8.0_112-release"
OpenJDK Runtime Environment (build 1.8.0_112-release-b06)
OpenJDK 64-Bit Server VM (build 25.112-b06, mixed mode)
至于 Android 设备监视器 — 它仍然需要这个古老的 JRE 版本 6。
我刚刚在 Big Sur 上全新安装了 Android Studio Arctic Fox 2020.3.1,我不得不使用以下内容。
export JAVA_HOME=/Applications/Android\ Studio.app/Contents/jre/Contents/Home/
关于一个略有不同的主题,即使使用正确的 JAVA_HOME
,~/Library/Android/sdk/tools/bin/sdkmanager
也无法启动。我必须安装“Android SDK 命令行工具(最新)”(来自 Android Studio)并改用 ~/Library/Android/sdk/cmdline-tools/latest/bin/sdkmanager
。
核心问题是从 Android Studio Arctic Fox 开始,捆绑的目的地 java 已更改为:
/Applications/Android Studio.app/Contents/jre/jdk/Contents/Home/
到:
/Applications/Android Studio.app/Contents/jre/Contents/Home/
您只需将 .bash_profile
中的 JAVA_HOME env 变量更改为新的正确路径(注意 space 字符,最简单的方法是在双引号中指定路径)。并重新启动终端或 运行 source ~/.bash_profile
.
正如 dimezis 所指出的,JAVA_HOME 可能正在工作,但 /user/libexec/java_home 仍然损坏。
这是因为在Mac中,java_home
和JAVA_HOME
是不同的。 JAVA_HOME
是将在大多数应用程序和环境中使用的环境变量/路径,而 java_home
是系统用于 运行 java 的实际可执行文件。显然,某些 Mac 应用程序(如 Xcode)将忽略 JAVA_HOME
路径并使用 java_home
可执行文件
因此,为了在 Mac 中使用 Android Studio Embedded JDK 作为默认值 Java,请复制整个嵌入式 jdk 文件夹/Applications/Android Studio.app/Contents/jre/jdk
到默认 Java 库文件夹 /Library/Java/JavaVirtualMachines/
在此之后,将您的 .bash_profile
或 .zshrc
设置为:
export JAVA_HOME=$(/usr/libexec/java_home)
这将确保您的 JAVA_HOME 和 java_home 指向相同的 java 安装。
在我的例子中,用 \
转义不起作用,但用 "
转义整个路径工作正常。请重新打开终端以查看更改或 运行 source ~/.zshenv
以更新终端。
export JAVA_HOME="/Applications/Android Studio.app/Contents/jre/Contents/Home/"