Mac 上安装多版本的 JDK 且实现 自由切换

news/2024/10/18 9:20:52/

背景

当前电脑上已经安装了 jdk8; 现在再安装 jdk17

期望

完成 jdk17 的安装,并且完成 环境变量 的配置,实现自由切换

前置补充知识

jdk 的安装路径

可以通过查看以下目录中的内容,确认当前已经安装的 jdk 版本。

 cd /Library/Java/JavaVirtualMachines

命令行查看 jdk 的安装路径

注意 :参数-V 是大写的 字母 v

/usr/libexec/java_home -V
$ /usr/libexec/java_home -V展示出  【/Library/Java/JavaVirtualMachines】 目录下的所有的 jdk 的目录:Matching Java Virtual Machines (2):1.8.341.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home1.8.0_341 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

下面我们开始 安装 和 配置 新的 jdk17

下载&安装 jdk17

下载jdk17

官网下载 :https://www.oracle.com/cn/java/technologies/downloads/#java17

在这里插入图片描述

安装

安装就是 简单的双击 安装程序,一步一步的执行安装即可。

安装完成查看jdk目录

 $ cd /Library/Java/JavaVirtualMachines$ ls -al

在这里插入图片描述

配置环境变量

本人的电脑使用的是 .zshrc 文件。
也可以使用 .bash_profile 文件,看个人的情况。

原配置详情

# add jdk1.8 environment 
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home# important! you must export only one PATH param in this file
export PATH=$JAVA_HOME/bin:$PATH:.# important! you must export only one CLASSPATH param in this file
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

新的配置详情


# add jdk1.8 and jdk17 environment config by northcastle on 2024-05-01
JAVA_HOME_8=/Library/Java/JavaVirtualMachines/jdk1.8.0_341.jdk/Contents/Home
JAVA_HOME_17=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Homeexport JAVA_HOME=$JAVA_HOME_8# 这是两个命令,切换版本的时候可以直接使用
alias jdk8="export JAVA_HOME=$JAVA_HOME_8"
alias jdk17="export JAVA_HOME=$JAVA_HOME_17"# important! you must export only one PATH param in this file
export PATH=$JAVA_HOME/bin:$PATH:.# important! you must export only one CLASSPATH param in this file
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

修改完成之后,保存退出即可。

使配置文件生效

source .zshrc

关闭当前终端,并新打开一个终端

这个步骤很关键!
这个步骤很关键!
这个步骤很关键!

验证安装成功

可以直接在终端中使用jdk8jdk17命令进行版本切换。

在这里插入图片描述


http://www.ppmy.cn/news/1448449.html

相关文章

蓝桥杯练习系统(算法训练)ALGO-952 简易编辑器

资源限制 内存限制:256.0MB C/C时间限制:1.0s Java时间限制:3.0s Python时间限制:5.0s 问题描述 你要实现一个简易文本编辑器,每个字符是一个整数,程序要完成一下操作:   P 光标左移&…

问题集锦三

1.简述static和final的用法? static:修饰属性,方法,代码块 (1)静态属性:也可叫类变量 类名.属性名 来访问 (共有的类变量与对象无关,只和类有关) 注意&am…

Vue 组件化开发、根组件

Vue开发的两种方式: 核心包传统开发模式:基于html/css/js文件,直接引入核心包,开发Vue工程化开发模式:基于构建工具的环境中开发Vue 这里选择Vue cli脚手架 进行开发,搜索教程自行下载。 组件化开发 一个页…

SpringBoot日志管理

一.Logback SpringBoot默认使用Logback组件作为日志管理。 Logback是log4j创始人设计的一个开源日志组件。在SpringBoot中已经整合了Logback的依赖,所以我们不需要额外的添加其他依赖,这些日志格式在我们开发过程中是不需要开发人员自己写的,直接cv拿过来…

leetcode40

给定一个候选人编号的集合 candidates 和一个目标数 target ,找出 candidates 中所有可以使数字和为 target 的组合。 candidates 中的每个数字在每个组合中只能使用 一次 。 注意:解集不能包含重复的组合。 示例 1: 输入: candidates [10,1,2,7,6…

ElasticSearch教程入门到精通——第四部分(基于ELK技术栈elasticsearch 7.x新特性)

ElasticSearch教程入门到精通——第四部分(基于ELK技术栈elasticsearch 7.x新特性) 1. Elasticsearch进阶1.1 核心概念1.1.1 索引Index1.1.1.1 索引创建原则1.1.1.2 Inverted Index 1.1.2 类型Type1.1.3 文档Document1.1.4 字段Field1.1.5 映射Mapping1.…

分类规则挖掘(二)

目录 三、决策树分类方法(一)决策树生成框架(二)ID3分类方法(三)决策树的剪枝(四)C4.5算法 三、决策树分类方法 决策树 (Decision Tree) 是从一组无次序、无规则,但有类别…

配置SAM模型

配置的时候遇到一个问题: 报错: CUDA error: CUBLAS_STATUS_EXECUTION_FAILED when calling cublasLtMatmul( ltHandle, computeDesc.descriptor(), &alpha_val, mat1_ptr, Adesc.descriptor(), mat2_ptr, Bdesc.descriptor(), &beta_val, resul…