Hombrew中AdoptOpenJDK已废弃更换Eclipse Temurin安装最新版JDK,并实现不同JDK版本之间切换

news2024/11/26 14:49:53

在这里插入图片描述

😄 19年之后由于某些原因断更了三年,23年重新扬帆起航,推出更多优质博文,希望大家多多支持~
🌷 古之立大事者,不惟有超世之才,亦必有坚忍不拔之志
🎐 个人CSND主页——Micro麦可乐的博客
🐥《Docker实操教程》专栏以最新的Centos版本为基础进行Docker实操教程,入门到实战
🌺《RabbitMQ》本专栏主要介绍使用JAVA开发RabbitMQ的系列教程,从基础知识到项目实战
🌸《设计模式》专栏以实际的生活场景为案例进行讲解,让大家对设计模式有一个更清晰的理解
如果文章能够给大家带来一定的帮助!欢迎关注、评论互动~

Hombrew中AdoptOpenJDK已废弃更换Eclipse Temurin安装最新版JDK,并实现不同JDK版本之间切换

  • 前言
  • 查找问题
  • 开始替换
    • 卸载已经安装的JDK
    • 安装Temurin
    • 解决安装失败或慢的问题
  • 在不同JDK版本之间切换
    • 方案一
    • 方案二
    • 切换版本
  • 结语

前言

最近博主想体验一下JDK17的一些新特性,之前使用Homebrew安装JDK是基于AdoptOpenJDK,发现Homebrew上的AdoptOpenJDK最高只到16(见下图),这里就教大家怎么来解决安装后续更新的JDK问题
在这里插入图片描述

查找问题

首先第一时间上GitHub查看为什么没有后续版本原因,发现原来AdoptOpenJDK被废弃了,推荐使用Eclipse基金会的JDK(Adoptium
在这里插入图片描述
Adoptium 的 JDK 称为 Eclipse Temurin,即原 AdoptOpenJDK ,只是已改名为 Adoptium 旗下的 Eclipse Temurin,或许你会问这个 Eclipse Temurin免费么?官方的答复:是的免费!

官方查阅参考
根据 “GNU General Public License, version 2 with the Classpath Exception” 许可证, Adoptium 将永久免费提供 Eclipse Temurin 二进制文件供您使用。 您可以自由地使用、修改和共享这些代码,这些权限都包含在您下载的许可证中。

开始替换

卸载已经安装的JDK

首先如果你之前使用了AdoptOpenJDK安装了某些JDK版本,需要使用Homebrew命令执行删除 brew remove --cask AdoptOpenJDK版本 ,这里为博主目前已经安装的adoptopenjdk8为例

# 移除adoptopenjdk8
brew remove --cask adoptopenjdk8
# 其他版本依次执行即可
...

如果提示输入密码,输入当前mac密码确认即可,看到下图即代表卸载成功
在这里插入图片描述
或者使用 java-verson 验证是否卸载;

你也可以检查JDK安装目录/Library/Java/JavaVirtualMachines/是否还存在adoptopenjdk8

在卸载完相关JDK后,最后执行 brew untap AdoptOpenJDK/openjdk,我们就彻底告别AdoptOpenJDK了

# 关闭tap
 brew untap AdoptOpenJDK/openjdk

安装Temurin

按照安装介绍,我们只需要执行 brew install --cask temurin 即可安装最新版的JDK

brew install --cask temurin
如果需要安装其他版本的JDK则需要,先 brew tap homebrew/cask-versions,再安装对应的版本JDK 比如JDK8 brew install --cask temurin8

# 先tap cask-versions,使之能够找到所有的casks
brew tap homebrew/cask-versions
#安装最新版
brew install --cask temurin
#安装JDK8
brew install --cask temurin8
#安装JDK11
brew install --cask temurin11
#依次类推
...

目前博主按照上述代码,安装了三个版本,我们进入JDK安装目录/Library/Java/JavaVirtualMachines/ 会发现有三个对应文件夹

temurin-8.jdk
temurin-11.jdk
temurin-17.jdk

解决安装失败或慢的问题

在终端找到目录 /usr/local/Homebrew/Library/Taps/homebrew/homebrew-cask-versions/Casks 会看到这几个rb文件
在这里插入图片描述
以修改temurin8.rb为例,修改文件将url更改为中科大的pkg包地址

https://mirrors.ustc.edu.cn/adoptium/releases/temurin8-binaries/jdk8u372-b07/OpenJDK8U-jdk_x64_mac_hotspot_8u372b07.pkg

在这里插入图片描述
重新执行安装,你会发现下载速度飞快了

其他版本请参考中科大的源地址 https://mirrors.ustc.edu.cn/adoptium/releases/ ,这里不再赘述了

在不同JDK版本之间切换

方案一

在 ~/.bashrc 或 ~/.zshrc 中添加如下内容:

jdk() {
        version=$1
        export JAVA_HOME=$(/usr/libexec/java_home -v"$version");
        java -version
 }

重载配置

#加载配置
source ~/.zshrc

方案二

对于Fish shell用户,在您的~/.config/fish/functions中添加以下函数

function jdk
	set java_version $argv
	set -Ux JAVA_HOME (/usr/libexec/java_home -v $java_version)
	java -version
end

切换版本

# 选择 OpenJDK 1.8
jdk 1.8
# 选择 OpenJDK 11
jdk 11
# 选择 OpenJDK 17
jdk 17

结语

本章节主要介绍了使用Eclipse Temurin替换 AdoptOpenJDK,并解决在安装过程中下载慢或失败的问题,最后编写脚本实现在不同JDK版本之间切换的场景,如果本章内容对你有用,欢迎关注收藏评论,后续将陆续推出更多好文和大家一起学习成长~

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/718536.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Python基础 —— 运算符

每天提升一 。。。。。。 〇、概述 Python 中有很多运算符,大体分为 算数运算符、赋值远算符、比较运算符、逻辑运算符。通过这些运算符能够更好地完成一些列的数据运算。 一、算数运算符 1. 算数运算符 算数运算符 主要用于 数值类型(整型、浮点型…

TCP三次和四次握手:

内容来自思学堂: TCP三次握手:确保双方都在线上 TCP四次握手:处理客户端要断开连接的需求

JavaWeb学习路线(11)—— Maven延伸

一、分模块设计 (一)概念: 将项目按功能拆分出若干个子模块。 (二)作用: 方便项目管理维护、扩展,也方便模块间相互调用,资源共享。 (三)具体实现 1、抽取…

深度学习项目实战二: LetNet5网络结构搭建

深度学习项目实战二: LetNet5网络结构搭建 文章目录 深度学习项目实战二: LetNet5网络结构搭建@[TOC](文章目录)一、卷积基本运算公式二、LetNet5网络1. 网络结构![在这里插入图片描述](https://img-blog.csdnimg.cn/0008fe6e5886414eac09eed49556ad99.png)2. 导入相关包3. 代码…

Apikit 自学日记:流程用例

添加普通用例 进入自动化测试用例管理页面,点击 添加用例 按钮,在弹窗中输入用例名称等信息,然后点击确定即可。 发起用例测试 创建好测试用例之后,点击 执行测试 按钮即可运行测试,系统会自动按顺序执行测试流程里的…

汽车下半年行情启动?概念全线爆发

2023年上半年,车市整体的基调是打价格战和加速“内卷”,在资本市场,汽车产业链相关概念股的表现整体也是不温不火。然而,下半年刚开始,汽车产业链股集体高调反弹。 7月4日,A股市场涨幅居前的概念板块几乎全…

MapstructPlus的快速集成

https://www.mapstruct.plus/https://www.mapstruct.plus/ # 博主技术栈如下 springboot:2.4.5 lombok:1.8.20 mapstruct-plus:1.3.4 knife4j:4.0.0目录 一、添加依赖(谨防依赖冲突) 二、如果依赖下不下来,要在maven的setting文件中加入腾讯…

NSS [SWPUCTF 2021 新生赛]no_wakeup

NSS [SWPUCTF 2021 新生赛]no_wakeup 先看题目&#xff0c;反序列化&#xff0c;绕过weakup。 exp&#xff1a; <?php class HaHaHa{public $admin;public $passwd;public function __construct(){$this->admin "admin";$this->passwd "wllm";…

【Python爬虫开发实战②】使用urllib以及jsonpath爬取即将上映电影信息

&#x1f680;个人主页&#xff1a;为梦而生~ 关注我一起学习吧&#xff01; &#x1f4a1;专栏&#xff1a;python网络爬虫从基础到实战 欢迎订阅&#xff01;后面的内容会越来越有意思~ &#x1f4a1;往期推荐&#xff1a; ⭐️首先&#xff0c;我们前面讲了多篇基础内容&…

【JUC并发编程】集合类安全问题

一、并发下&#xff0c;ArrayList类是不安全的 代码演示package CollectionSafe;import java.util.ArrayList; import java.util.List; import java.util.UUID;/*** author swaggyhang* create 2023-07-02 17:26*/ public class Test01 {public static void main(String[] arg…

ubuntu下 C/C++程序读取设置环境变量

设置环境变量很简单比如&#xff1a; export QMCY_LOCAL_PORT8888 追加的话 export QMCY_LOCAL_PORT$QMCY_LOCAL_PORT:8000 可以通过echo回显 读取的话 main函数多加一个env参数 一个字符串数组 然后遍历这个数组 即可 使用的时候 如下&#xff1a; bool QMCY_APP::Init(s…

【若依框架学习】day1-启动项目

若依开源框架&#xff0c;前后端分离项目&#xff0c;地址&#xff1a;http://doc.ruoyi.vip/ruoyi-vue/ 先配置环境 JDK1.8&#xff0c; MySQL5.7 &#xff0c;Maven3.6&#xff0c;redis、nginx(可以不配)、 node 具体见&#xff1a;https://ygstriver.blog.csdn.net/articl…

day28-JSP

0目录 JSP 1.为什么使用JSP 2.B/S和C/S的区别 3.URL 4.Tomcat 5.JSP实战综合项目 1.为什么使用JSP 1.1 JSP定义&#xff1a; &#xff08;1&#xff09;是一种动态网页技术 &#xff08;2&#xff09;Java Server Pages&#xff08;Java服务器端页面技术&#xff09; 1.2 …

docker进阶

Docker网络 [rootecs-56325218 ~]# docker network ls NETWORK ID NAME DRIVER SCOPE 2c63c1a8145c bridge bridge local 70d3439bbb55 host host local ffc74cf89143 none null local[rootecs-56325218 ~]# docker network cre…

day 42 01背包

01背包裸题 有n件物品和一个最多能背重量为w 的背包。第i件物品的重量是weight[i]&#xff0c;得到的价值是value[i] 。 每件物品只能用一次&#xff0c;求解将哪些物品装入背包里物品价值总和最大。 二维数组 dp含义&#xff1a; dp[ i ][ j ] 表示从下标为 [ 0 - i ]的物品里…

SpringBoot 整合RabbitMQ

SpringBoot 整合 RabbitMQ 概念 2007 年发布&#xff0c;是一个在 AMQP(高级消息队列协议)基础上完成的&#xff0c;可复用的企业消息系统&#xff0c;是当前最主流的消息中间件之一。 RabbitMQ是一个由erlang开发的AMQP&#xff08;Advanced Message Queue 高级消息队列协议…

Driver、CUDA、CUDNN和TensorRT的关系【深蓝学院】

文章目录 1、Driver、CUDA、CUDNN和TensorRT的关系2、如何选择CUDA版本2.1 如何选择CUDA版本的一个例子 3、手动安装实操 1、Driver、CUDA、CUDNN和TensorRT的关系 2、如何选择CUDA版本 上面的显卡架构及其对应的CUDA版本和稳定版本是怎么得出来的呢&#xff1f;请看下图&#…

【数据结构与算法】将含有n个元素的整数数组A[0…n-1]的元素循环右移1≤m<n)位。要求算法的空间复杂度为O(1)。

题目&#xff1a; Qestion:  设计一个算法 , 将含有 n 个元素的整数数组 A [ 0 … n − 1 ] 的元素循环右移 ( 1 ≤ m < n ) 位。要求算法的空间复杂度为 O ( 1 ) 设计一个算法,将含有n个元素的整数数组A[0…n-1]的元素循环右移(1≤m<n)位。要求算法的空间复杂度为O(1) …

[MySQL]MySQL数据库基础

[MySQL]MySQL数据库基础 文章目录 [MySQL]MySQL数据库基础1. 什么是数据库2. 主流数据库3. 服务器数据库表之间的关系4. 数据逻辑结构5. MySQL架构6. SQL语句分类7. 存储引擎 1. 什么是数据库 数据库是存储在计算机系统内的有结构的数据集合&#xff0c;是相关数据的集合&#…

【业务功能篇38】Springboot+activiti7 工作流引擎 增加网关组件、Assignment分配权限

在前面的一篇文章中&#xff0c;简单举例了一个 工单电子流&#xff0c;【业务功能篇36】Springbootactiviti7 工作流引擎_studyday1的博客-CSDN博客仅有一个子任务&#xff0c;这种一般是针对比较简单的一个遗留问题记录场景&#xff0c;今天再介绍一个&#xff0c;相对比较复…