Mac 多版本 JDK 管理

1. 准备

  • ZSH
  • Homebrew
  • Oracle JDK 1.8 安装包(Homebrew 官方源和第三方源不再提供老版本的 Oracle JDK)

2. 安装 JDK

  1. Oracle JDK 安装

    点开安装包,一直下一步就行了

  2. Open JDK 安装

    通过 Homebrew 安装,先要添加第三方源:brew tap homebrew/cask-versions

    然后brew search jdk,查找结果如下:

    安装命令:brew cask install adoptopenjdk8 -v安装 Openjdk8

Mac 默认 JDK 安装的路径:

Mac 可以通过/usr/libexec/java_home来管理JAVA_HOME,具体使用如下:

查看当前安装的 JDK:

有安装就有卸载,手动安装的 JDK 可以参考 Removing Java 8 JDK from Mac

通过 Homebrew 安装的通过brew cask uninstall adoptopenjdk8 -v卸载即可

如果不采用 jenv 管理管理多版本 JDK,参考 mac配置JAVA_HOME最佳方法

3. jenv 安装及使用

  1. 执行brew install jenv来安装 jenv

  2. 添加环境变量

    echo 'export PATH="$HOME/.jenv/bin:$PATH"' >> ~/.zshrc
    echo 'eval "$(jenv init -)"' >> ~/.zshrc
    exec $SHELL -l

    jenv doctor命令用来检查配置

  3. 开启export插件

    jenv enable-plugin export
  4. 添加 JDK

    添加最新的 JDK

    jenv add $(/usr/libexec/java_home)

    添加指定的 JDK,比如 Open JDK 8

    jenv add /Library/Java/JavaVirtualMachines/adoptopenjdk-8.jdk/Contents/Home

    通过jenv remove 命令可以删除添加过的 JDK

  5. 查看所有 JDK

    jenv versions

    此时使用jenv doctor命令,结果如下(一片绿就对了)

  6. 切换 JDK

    jenv global用来设置全局 JDK

    jenv local用来设置当前目录 JDK

    jenv shell用来设置 shell session 中的 JDK

    每次切换 JDK 之后,执行exec $SHELL -l或者重启终端

  7. Maven

    Maven 仍然会使用/usr/libexec/java_home -v输出的 JDK,可能与当前使用的 JDK 版本不同。用jenv enable-plugin maven命令启用 Maven 插件即可

4. 参考

最新文章

  1. 奇葩bug笔记
  2. vuejs学习网站推荐
  3. CSS代码重构与优化之路
  4. Angular $http解析通过接口获得的json数据
  5. [SLAM] 01 "Simultaneous Localization and Mapping" basic knowledge
  6. [原]poj-2488-water-DFS
  7. Python time mktime()方法
  8. CodeForces 489D Unbearable Controversy of Being (搜索)
  9. 查看MAC系统JRE和JDK版本
  10. 未能找到类型或命名空间“Compare”
  11. Android 解析JSON数组
  12. NSDate显示和时区的关系
  13. 360你吃屎啊你,hao123,12345等等
  14. NSA武器库知识整理
  15. 吾八哥学Python(一):搭建Python开发环境(Windows)
  16. Java 浮点型与双精度数值比较
  17. CF1101D GCD Counting
  18. QT 字符串的使用技巧总结
  19. C# 6 的新特性~
  20. oracle 插入单引号

热门文章

  1. redis系列-要命的zrangebyscore
  2. 普通版js运动框架
  3. Microsoft.EntityFrameworkCore.Tools 相关命令
  4. SAP S4HANA里委外加工采购功能的变化
  5. Nginx-4.Nginx如何处理请求
  6. Mac下搭建selenium环境
  7. Java数据结构--双向链表的实现
  8. 给test函数加个装饰器!
  9. Android中获取目标布局文件中的组件
  10. zabbix | 离线安装agent