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

macOS 多 Java 版本管理(jenv 方案)

目录
  • 一、目标
  • 二、查看已安装的 JDK
  • 三、使用 jenv 管理 Java 版本
    • 1. 安装 jenv
    • 2. 配置 Shell 环境
    • 3. 添加已安装的 JDK
    • 4. 查看可用版本
    • 5. 切换 Java 版本
    • 6. 验证版本
  • 四、常见问题
    • 1. 权限问题
    • 2. Shell 配置文件选择错误
  • 五、注意事项
  • 六、附录:常见 JDK 安装路径


一、目标

在 macOS 系统中通过 jenv 管理多个 Java 版本,实现灵活切换。


二、查看已安装的 JDK

/usr/libexec/java_home -V

输出示例

Matching Java Virtual Machines (3):17.0.15 (arm64) "Oracle Corporation" - "Java SE 17.0.15" /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home1.8.381.09 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home1.8.0_381 (arm64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home

注意

  • /Library/Java/JavaVirtualMachines/jdk-1.x.x.jdk/Contents/Home 是完整的 JDK 安装路径,推荐用于开发。
  • /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home 是浏览器插件路径,不建议用于开发

三、使用 jenv 管理 Java 版本

1. 安装 jenv

brew install jenv

2. 配置 Shell 环境

  • Zsh 用户(macOS 默认):

    echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(jenv init -)"' >> ~/.zshrc
    source ~/.zshrc
    
  • Bash 用户

    echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.bash_profile
    echo 'eval "$(jenv init -)"' >> ~/.bash_profile
    source ~/.bash_profile
    

3. 添加已安装的 JDK

jenv add /Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

4. 查看可用版本

jenv versions

5. 切换 Java 版本

  • 全局切换

    jenv global 17
    
  • 当前目录切换

    jenv local 1.8
    

6. 验证版本

java -version

四、常见问题

1. 权限问题

  • 错误示例

    zsh: permission denied: ~/.bash_profile
    
  • 解决方法

    1. 使用 open -e ~/.bash_profile 编辑文件(若文件不存在会自动创建)。

    2. 修改文件权限:

      chmod 644 ~/.bash_profile
      

2. Shell 配置文件选择错误

  • Zsh 用户:使用 .zshrc.zsh_profile

  • Bash 用户:使用 .bash_profile.bashrc

  • 检查当前 Shell

    echo $SHELL
    

五、注意事项

  1. 路径一致性jenv add 的路径需与实际 JDK 安装路径一致(可通过 /usr/libexec/java_home -V 查看)。

  2. 生效方式:修改配置后需运行 source ~/.zshrc 或重启终端。

  3. IDE 配置:IntelliJ IDEA 等 IDE 需手动指定 JDK 路径,与系统环境无关。

  4. 卸载 jenv

    brew uninstall jenv
    

六、附录:常见 JDK 安装路径

# JDK 8
/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home# JDK 17
/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home

通过以上方法,你可以轻松管理多个 Java 版本,并根据项目需求灵活切换!

http://www.jsqmd.com/news/4798/

相关文章:

  • AI 落地教育智慧招生:从 “热线占线” 到 “724 小时精准应答” 的实践分享
  • 软件技术基础第一次课程
  • 石子合并(一排的和一个环的)
  • 思维题练习
  • NXP - 用MCUXpresso IDE导入lpcopen_2_10_lpcxpresso_nxp_lpcxpresso_1769.zip中的工程 - 教程
  • US$42 BDM01 Adapter for Yanhua Mini ACDP Module1 BMW CAS1-CAS4+
  • spatial项目的主要领导者斯坦福大学ppl实验室的 Kunle Olukotun 教授和 Christos Kozyrakis 教授
  • 程序杂谈:概述
  • 字符串基础
  • Kubernetes 进阶实战:CRD、Gateway API 与优先级调度 - 实践
  • 初识MYSQL —— 数据库基础 - 指南
  • 多态下,构造函数和析构函数的顺序,以及父类、子类的转换
  • US$49 B48 amp; MSV90 ISN Reading via OBD Authorization for Yanhua Mini ACDP
  • 在CodeBolcks下wxSmith的C++编程教程——使用 wxGrid
  • 题解:P12479 [集训队互测 2024] 长野原龙势流星群
  • 详细介绍:Docker(一)—— Docker入门到精通:从基础概念到容器管理
  • linux下nginx
  • OI 笑传 #12
  • spatial芯片设计语言 学习笔记
  • 非诚勿扰 —— 大龄单身男,找人生合伙人,有意者邮件联系
  • soul 这款APP太差劲了,天天都有婚介加我,怎么个事情,还能不能好好的解决解决个人问题了
  • 【C++】23. C++11(上) - 教程
  • kali2025搭建ARL灯塔系统
  • 单片机 -- USART总线 - 实践
  • 实用指南:AI 术语通俗词典:LLM(大语言模型)
  • java学习 2025-9-27
  • 揭秘JUC:volatile与CAS,并发编程的两大基石
  • 题解:P11667 [USACO25JAN] Astral Superposition B
  • 【项目实战 Day7】springboot + vue 苍穹外卖架构(微信小程序 + 微信登录模块 完结)
  • 深入解析:Pytorch框架笔记