mac中有多个java版本涉及到brew安装中,怎么切换不同版本
在 macOS 上查看所有已安装的 Java 版本,可以用以下几种方法:
查看Java版本
方法一:使用系统命令查看所有 Java 版本路径
/usr/libexec/java_home -V
这个命令会列出系统中所有已安装的 Java 版本及其安装路径,例如:
你看到的两个 Java 8 版本分别位于不同的位置,原因是它们来源和安装方式不同:
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
这是 macOS 系统中安装的 Java 插件路径,通常是 Oracle 官方安装的 Java 8 浏览器插件版本,主要用于支持浏览器中的 Java Applet(虽然现在大多数浏览器已经不支持 Java Applet 了)。这个版本一般是系统级别的插件,不建议用作开发环境的主要 JDK。
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
这是标准的 Oracle JDK 8 安装路径,通常是你通过 Oracle 官网安装的完整 JDK,适合开发和运行 Java 应用。这个路径是 macOS 上常见的 JDK 安装目录。
总结:
第一个 Java 8 是浏览器插件版本,主要用于老旧浏览器的 Java 支持。
第二个 Java 8 是完整的 JDK,适合开发和运行 Java 程序。
如果你要切换 Java 版本,建议使用第二个路径的 JDK,或者你通过 Homebrew 安装的版本(如 OpenJDK 17、23 等)。
方法二:查看 /Library/Java/JavaVirtualMachines/
目录
ls /Library/Java/JavaVirtualMachines/
这个目录通常存放通过官方安装包或 Homebrew 安装的 Java 版本,每个版本是一个 .jdk
文件夹。
环境切换与管理
方法一:使用 jenv
管理多个 Java 版本(推荐)
jenv
是一个专门用来管理多个 Java 版本的工具,使用方便。
安装 jenv
:
brew install jenv
添加 jenv
到 shell 配置文件(以 zsh 为例):
echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
echo 'eval "$(jenv init -)"' >> ~/.zshrc
source ~/.zshrc
添加已安装的 Java 版本到 jenv
:
jenv add /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/openjdk-17.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/openjdk.jdk/Contents/Home
路径根据你实际安装的版本调整。
查看已添加的版本:
jenv versions
设置全局 Java 版本:
jenv global 11.0
设置当前目录(项目)使用的 Java 版本:
jenv local 8.0
验证当前 Java 版本:
java -version
备注:切换之后要重新打开shell
方法二:手动切换 JAVA_HOME
你也可以手动设置环境变量 JAVA_HOME
来切换版本:
查看已安装的 Java 版本路径:
/usr/libexec/java_home -V
设置 JAVA_HOME
,例如切换到 Java 11:
export JAVA_HOME=$(/usr/libexec/java_home -v 11)
export PATH=$JAVA_HOME/bin:$PATH
你可以把这段命令写入 ~/.zshrc
或 ~/.bash_profile
,方便切换。