mac中有多个java版本涉及到brew安装中,怎么切换不同版本

发布于:2025-07-08 ⋅ 阅读:(22) ⋅ 点赞:(0)

在 macOS 上查看所有已安装的 Java 版本,可以用以下几种方法:

查看Java版本

方法一:使用系统命令查看所有 Java 版本路径

/usr/libexec/java_home -V

这个命令会列出系统中所有已安装的 Java 版本及其安装路径,例如:
Matching Java Virtual Machines (3):
17.0.6 (x86_64) "Oracle Corporation" - "Java SE 17.0.6" /Library/Java/JavaVirtualMachines/jdk-17.0.6.jdk/Contents/Home
11.0.19 (x86_64) "Oracle Corporation" - "Java SE 11.0.19" /Library/Java/JavaVirtualMachines/jdk-11.0.19.jdk/Contents/Home
1.8.0_361 (x86_64) "Oracle Corporation" - "Java SE 8u361" /Library/Java/JavaVirtualMachines/jdk1.8.0_361.jdk/Contents/Home

你看到的两个 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,方便切换。


网站公告

今日签到

点亮在社区的每一天
去签到