MacOS安装 JDK 及动态切换版本

JDK下载  我自己使用的是Mac m2系列。无所谓用的哪一种开源的OPEN JD,按需下载,我下载了8,11,17三个版本。

安装完成后,终端输入 java -version 查看当前 JDK 版本

配置环境

1. 编辑配置文件

vim ~/.bash_profile

2. 配置 JDK 信息

# 多版本JDK 配置
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_351.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.17.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home PATH=$JAVA_HOME/bin:$PATH
CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar export JAVA_HOME=$JAVA_8_HOME # alias命令动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
alias jdk17="export JAVA_HOME=$JAVA_17_HOME" export PATH
export CLASSPATH

3. 立即将配置文件生效

source ~/.bash_profile

4. 验证配置

注:

1、 查看已安装的jdk版本极其目录

/usr/libexec/java_home -V

2、重启后 alias 配置无效  在~/.zshrc 添加如下配置,在文件最初始地方添加即可。

source ~/.bash_profile

3、 配置环境变量并对JDK版本进行管理。

首先执行命令 vim ~/.bash_profile 修改环境变量,MAC建议此处修改环境变量,而不是修改/etc/profile。几种配置文件区别如下:

文件 内容
/etc/profile 应用于所有用户的全局配置脚本
~/.bash_profile 用于私人的启动文件。可以用来扩展或重写全局配置脚本中的设置
~/.bash_login 如果文件 ~/.bash_profile 没有找到,bash会尝试读取这个脚本
~/.profile 如果文件 ~/.bash_profile 和 ~/.bash_login 都没有找到,bash会试图读取这个文件。这是基于 Debian 发行版的默认配置,比方说 Ubuntu

MacOS安装 JDK 及动态切换版本的更多相关文章

  1. Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一)

    原文:Quartz.NET 3.0.7 + MySql 实现动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(一) 前端时间,接到领导任务,写了一个调度框架.今天决定把心路历程记 ...

  2. linux在线安装JDK(1.8版本)

    在线下载JDK 命令: wget --no-check-certificate --no-cookies --header "Cookie: oraclelicense=accept-sec ...

  3. linux安装jdk与配置-centos7版本

    1.Linux安裝jdk 1.如果電腦沒有wget命令的,先使用yum安裝wget命令. eg: yum install wget 2.安裝好后就可以直接使用wget命令去下載jdk. 附:打開官網連 ...

  4. Quartz.NET 3.0.7 + MySql 动态调度作业+动态切换版本+多作业引用同一程序集不同版本+持久化+集群(四)

    把 HAProxy 用上了,终于不用担心某个节点挂了,还要去手动修改管理后台配置文件的api地址了. 在某网站下载了一个 window 可以用的版本 haproxy-1.7.8 不得不吐槽一下,作者要 ...

  5. P1_jemeter安装--jdk安装

    学习的python,需要下载jemter做接口测试. 一..jMeter介绍 Apache组织开发的基于JAVA压力测试工具 100%纯JAVA开发,完全可移植性 可用于测试静态和动态资源 多协议-- ...

  6. linux(center OS7)安装JDK、tomcat、mysql 搭建java web项目运行环境

    一.安装JDK 1.卸载旧版本或者系统自带的JDK (1)列出所有已安装的JDK rpm -qa | grep jdk (2)卸载不需要的JDK yum -y remove 安装包名称 2.下载并解压 ...

  7. MAC M1安装多个JDK版本及动态切换

    JDK版本下载 下载地址:https://www.azul.com/downloads/?package=jdk 筛选一下macOS的ARM 64-bit架构的JDK版本,下载对应版本即可.最好直接下 ...

  8. 如何安装多个jdk并方便切换系统jdk版本

    如何安装多个jdk并方便切换系统jdk版本 前言 在安装myeclipse时,压缩包中附带1.8.0的jdk,顺便安装并配置环境变量后发现系统默认的jdk变为了1.8.0.随后发现eclipse只支持 ...

  9. win10 安装多个版本的jdk,如何切换

    JAVA_HOME C:\software\jdk1.7.0_79 CLASSPATH  .;%JAVA_HOME%\lib\tools.jar;%JAVA_HOME%\jre\lib\dt.jar ...

  10. MAC下 JDK环境配置、版本切换以及ADB环境配置

    网上方法,自己总结:亲测可行! 一.JDK环境配置.版本切换: 通过命令’jdk6′, ‘jdk7′,’jdk8’轻松切换到对应的Java版本: 1.首先安装所有的JDk:* Mac自带了的JDK6, ...

随机推荐

  1. Unix\Linux 执行 shell 报错:“$'\r': 未找到命令” 的解决办法

    原因 原因是因为 shell 脚本是在 Windows 编写导致的换行问题,具体原因是 Windows 的换行符号为 CRLF(\r\n),而 Unix\Linux 为 LF(\n),Macintos ...

  2. 二进制文件转Hex和Wav文件转Hex的Java代码

    二进制文件转Hex 对于需要将二进制数据写入固件的场景(例如mp3文件), 需要将二进制文件表示为byte数组 import java.io.File; import java.io.FileInpu ...

  3. Centos8 安装 Redis6.0.16

    下载,解压,编译,安装 安装至 /opt/redis/redis-6.0.16 目录 tar xvf redis-6.0.16.tar.gz gcc --version cd redis-6.0.16 ...

  4. k8s-dashboard、helm

    目录 dashboard 安装dashboard 1. 创建SA 2. 集群角色绑定 3. 创建secret 4. 查看token helm 安装helm 1. 下载tar包 2. 解压 3. 配置环 ...

  5. BUUCTF [强网杯 2019]随便注 1

    1. 拿到题目,先输入一个1'试一下是否存在注入点 报错 error 1064 : You have an error in your SQL syntax; check the manual tha ...

  6. Mybatis模糊查询无法确定参数$1的数据类型: ERROR: could not determine data type of parameter $1

    Mybatis模糊查询无法确定参数$1的数据类型: 报错ERROR: could not determine data type of parameter $1 修改前: SELECT count(0 ...

  7. TCP Server and Client Demo

    server.go package main import ( "bufio" "fmt" "io" "net" &qu ...

  8. 【Azure Function】Azure Function中使用 Java 8 的安全性问题

    问题描述 使用Azure Function, 环境是Linux的Java8.目前 Oracle Java JDK8,11,17 和 OpenJDK 8/11/17 都在存在漏洞受影响版本的范围内. O ...

  9. 【Azure Developer】开发模式下使用AAD账号访问Azure Blob的相关参考

    问题描述 开发模式下使用AAD账号访问Azure Blob的流程参考文件 问题解答 第一步:先在AAD中注册一个APP,步骤可参考: 将应用程序注册到 Microsoft 标识平台 :https:// ...

  10. ArrayList学习总结

    1.ArrayList简介[1] ArrayList实现了List接口.ArrayList的方法实现和vector相似,只是线程不安全的. ArrayList的 size.isEmpty.get.se ...