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. 参考

Mac 多版本 JDK 管理的更多相关文章

  1. Mac下多版本JDK安装及管理

    在Java项目中,经常对JDK版本有不同的要求,可是不可能为了某个项目的运行重新下载不同版本JDK进行安装,这样就涉及到对本地环境中多个JDK版本的管理. Mac的JDK都是安装到一个指定目录的:/L ...

  2. mac下查看jdk安装版本及安装目录

    使用IntelliJ idea新建工程时需要查看jdk安装目录,记录下来为以后备用. mac自带jdk,查看jdk版本: IcarusdeMacBook-Pro:~ icarus$ java -ver ...

  3. MAC OS下JDK版本切换指南

    刚上手的用MAC开发的小伙伴们会发现,MAC自带JDK版本为1.6,通常会安装在 /System/Library/Java/JavaVirtualMachines/1.6.0.jdk/目录下,但是更多 ...

  4. mac 苹果多版本jdk自由切换

    场景 手头上的工具有时候依赖低版本jdk,有时候需要高版本jdk, 如何在不同版本jdk之间来回自由的切换? 安装 首选需要去官网下载dmg安装包,地址:https://www.oracle.com/ ...

  5. brew mac osx 上软件包管理工具

    今天推荐 Mac OSX 下,方便高效的包管理工具 brew brew 的全名叫做 Homebrew 它的功能类似于 ubuntu 下同下 apt-get ,或者 Cent OS 下的 yum 等包管 ...

  6. MAC OX 配置JDK环境变量

    大家在windows里面配置JDK环境变量很容易,但是如果要在mac里面配置JDK环境变量和windows里面有所不同,具体如下: 第一: mac OS里面自带jdk,不过是1.6的版本,现在很多人使 ...

  7. 适用于Mac 的自动补丁管理软件

    适用于Mac 的自动补丁管理软件 ManageEngine Desktop Central 的功能越来越神奇.系统管理员现在可以使用 Desktop Central 管理异构网络.即使是最复杂的任务, ...

  8. mac系统 安装 JDK 并配置环境

    第一步 : 下载 mac 版的 JDK 下载地址: http://www.oracle.com/technetwork/java/javase/downloads/jdk8-downloads-213 ...

  9. java jdk 管理工具

    官网:http://www.jenv.be/ 安装: Linux / OS X $ git clone https://github.com/gcuisinier/jenv.git ~/.jenv M ...

随机推荐

  1. oracle系列练习题

    刚学习Oracle,老师给我们布置了一些题目来练习. 题目: 创建四个表,并录入数据 1.student表 CREATE TABLE STUDENT (SNO VARCHAR(3) NOT NULL, ...

  2. c++ bool

    bool 就两个值,真或者假,通常用来存储关系表达式或者逻辑表达式的结果. 以前是用 int 来表示真假,大 int 有多个值,所以才规定 0 为假,非零为真,导致对应关系比较麻烦,有了 bool 就 ...

  3. .Net core webapi使用httpClient发送异步请求遇到TaskCanceledException: A task was canceled

    前言:本人最近较多使用.net core的项目,最近在使用httpClient发送请求的时候,遇到服务器处理时间较长时,就老是会报异常:TaskCanceledException: A task wa ...

  4. JavaScript将数组转换为链表

    JS中将数组转换为链表 /** * 将数组转换为链表 * @param array arr 需要转换的数组 * @param int type 转换的类型,0为单链表,1为循环链表 * @return ...

  5. MYSQLl给用户授予数据库表权限

    给targetUserName用户授予databaseName单个数据库权限 grant all privileges on databaseName.* to targetUserName@&quo ...

  6. 使用TensorRT对人脸检测网络MTCNN进行加速

    前言 最近在做人脸比对的工作,需要用到人脸关键点检测的算法,比较成熟和通用的一种算法是 MTCNN,可以同时进行人脸框选和关键点检测,对于每张脸输出 5 个关键点,可以用来进行人脸对齐. 问题 刚开始 ...

  7. [菜b]Isaunoya 的一些学习笔记…[保持咕咕咕]

    fread/fwrite标记永久化 分块 树链剖分 莫比乌斯反演 斜率优化/单调队列 kruskal重构树 回滚莫队 可持久化线段树/trie树 Link-Cut-Tree dsu on tree F ...

  8. python三程

    1.1 进程与线程简介 1.什么是进程(process)?(进程是资源集合) 定义:1)进程是资源分配最小单位    2)当一个可执行程序被系统执行(分配内存资源)就变成了一个进程 1. 程序并不能单 ...

  9. Qt的QString,QByteArray,char *相互转换

    1.QString转换为QByteArray QString str = "; QByteArray byte = str.toUtf8(); // 转换为Utf8格式 byte.toLoc ...

  10. 使用JAVA导出EXCEL表格(POI)

    一.POI概述 Jakarta POI 是一套用于访问微软格式文档的Java API.POI提供API给Java程序对Microsoft Office格式档案读和写的功能.在许多企业办公系统中,经常会 ...