当前位置: 首页 > news >正文

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

在 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,方便切换。

http://www.xdnf.cn/news/1084933.html

相关文章:

  • Baklib作为赞助商参加RubyConf China 2025 技术大会
  • 宝塔下载pgsql适配spring ai
  • Qt中的坐标系
  • 如果让计算机理解人类语言- Word2Vec(Word to Vector,2013)
  • 1.1_5_2 计算机网络的性能指标(下)
  • 腾讯云录音文件快速识别实战教程
  • Oracle PL/SQL 编程基础详解(从块结构到游标操作)
  • vue3 字符包含
  • C++标准库中各种互斥锁的用法 mutex
  • WebRTC与RTMP
  • AtCoder AT_abc413_d [ABC413D] Make Geometric Sequence
  • 【Godot4】正则表达式总结与测试
  • 操作系统【2】【内存管理】【虚拟内存】【参考小林code】
  • 使用Scapy构造OSPF交互报文欺骗网络设备与主机建立Full关系
  • 20250706-12-Docker快速入门(下)-容器数据持久化_笔记
  • Redis集群和 zookeeper 实现分布式锁的优势和劣势
  • 桥梁桥拱巡检机器人cad+【4张】设计说明书+绛重+三维图
  • React 英语单词消消乐一款专为英语学习设计的互动式记忆游戏
  • 20250706-11-Docker快速入门(下)-构建Nginx镜像和Tomcat镜像_笔记
  • DTW模版匹配:弹性对齐的时间序列相似度度量算法
  • 计算机网络实验——互联网安全实验
  • 【C++】C++四种类型转换操作符详解
  • 如何使用xmind编写测试用例
  • Docker容器中安装MongoDB,导入数据
  • electron中的IPC通信
  • WebRTC 的 ICE candidate 协商
  • 深度学习图像分类数据集—蘑菇识别分类
  • axios笔记
  • Monorepo+Turborepo+Next常问问题详解
  • Git使用教程