当前位置: 首页 > news >正文

apple macbook M系列芯片安装 openJDK17

文章目录

    • 1. 查找openjdk版本
    • 2. 安装openjdk
    • 3. 多jdk之间的切换

在这里我们使用 brew 命令查找并安装。

1. 查找openjdk版本

执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下 brew

更新 brew 分别执行以下命令:

cd "$(brew --repo)"
git fetch
git reset --hard origin/master
brew update: 执行时间较长,耐心等待
brew upgrade

等待更新结束,再次执行查找openjdk命令,此时应该显示图中内容。

2. 安装openjdk

执行安装命令:brew install openjdk@版本号
比如我这里想安装openJdk17,则执行:brew install openjdk@17

安装完毕后,输出如下信息表示安装成功:

For the system Java wrappers to find this JDK, symlink it withsudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdkopenjdk@17 is keg-only, which means it was not symlinked into /opt/homebrew,
because this is an alternate version of another formula.If you need to have openjdk@17 first in your PATH, run:echo 'export PATH="/opt/homebrew/opt/openjdk@17/bin:$PATH"' >> ~/.zshrcFor compilers to find openjdk@17 you may need to set:export CPPFLAGS="-I/opt/homebrew/opt/openjdk@17/include"

接下来,根据提示,我们这里需要做两个操作

  1. 为了让 Java wrappers 找到 JDK,需要手动建立链接

    sudo ln -sfn /opt/homebrew/opt/openjdk@17/libexec/openjdk.jdk /Library/Java/JavaVirtualMachines/openjdk-17.jdk
    
  2. 配置环境变量
    因为之前安装有jdk1.8,所以需要在两个jdk之前切换,需要配置多环境变量:
    首先:找到 ~/.bash_profile~/.bashrc~/.zshrc 等配置文件中的 任意一个 (之前环境变量配置在哪个文件,就继续使用原有文件,我这里使用~/.bash_profile) ,添加下面这行代码:

    # 配置Java11的家目录
    export JAVA_17_HOME=$(/usr/libexec/java_home -v17)
    # 配置Java8的家目录
    export JAVA_8_HOME=$(/usr/libexec/java_home -v1.8)
    # 配置别名,方便快速切换
    alias java8='export JAVA_HOME=$JAVA_8_HOME'
    # 配置别名,方便快速切换
    alias java17='export JAVA_HOME=$JAVA_17_HOME'export PATH=$JAVA_HOME/bin:$PATH:.
    # 默认是java8
    export JAVA_HOME=$JAVA_8_HOME
    

3. 多jdk之间的切换

经过我反复测试,切换时一定要加上&& source ~/.bash_profile
即:

  • 切换Java17:java17 && source ~/.bash_profile
  • 切换Java8:java8 && source ~/.bash_profile

相关文章:

apple macbook M系列芯片安装 openJDK17

文章目录 1. 查找openjdk版本2. 安装openjdk3. 多jdk之间的切换 在这里我们使用 brew 命令查找并安装。 1. 查找openjdk版本 执行:brew search openjdk,注意:执行命令后,如果得到的结果中没有红框内容,则需要更新一下…...

C语言——打印出所有的“水仙花数”

所谓水仙花数,是指一个3位数,其各位数字立方和等于该数本身。水仙花数是指一个三位数&#xff0c;它的每个位上的数字的立方和等于它本身。例如&#xff0c;153是一个水仙花数&#xff0c;因为1^3 5^3 3^3 153。 #define _CRT_SECURE_NO_WARNINGS 1#include <stdio.h>…...

<HarmonyOS第一课>应用程序框架 【课后考核】

【习题】应用程序框架 判断题 一个应用只能有一个UIAbility。错误(False)创建的Empty Ability模板工程&#xff0c;初始会生成一个UIAbility文件。正确(True)每调用一次router.pushUrl()方法&#xff0c;页面路由栈数量均会加1。错误(False) 单选题 API9及以上&#xff0c;r…...

自动驾驶学习笔记(十一)——高精地图

#Apollo开发者# 学习课程的传送门如下&#xff0c;当您也准备学习自动驾驶时&#xff0c;可以和我一同前往&#xff1a; 《自动驾驶新人之旅》免费课程—> 传送门 《Apollo Beta宣讲和线下沙龙》免费报名—>传送门 文章目录 前言 高精地图 地图采集 底图制作 地图…...

HCIA-H12-811题目解析(2)

1、【单选题】 在以太网这种多点访问网络上PPPOE服务器可以通过一个以太网端口与很多PPPOE客户端建立起PPP连接&#xff0c;因此服务器必须为每个PPP会话建立唯一的会话标识符以区分不同的连接PPPOE会使用什么参数建立会话标识符? 2、【单选题】PPP协议定义的是OSI参考模型中…...

Docker-简介、基本操作

目录 Docker理解 1、Docker本质 2、Docker与虚拟机的区别 3、Docker和JVM虚拟化的区别 4、容器、镜像的理解 5、Docker架构 Docker客户端 Docker服务器 Docker镜像 Docker容器 镜像仓库 Docker基本操作 1、Docker镜像仓库 镜像仓库分类 镜像仓库命令 docker lo…...

Codeforces Round 911 (Div. 2)(C dp D gcd 分解+容斥 E tarjan+dp)

A.手玩题&#xff1a; 可以通过最后一个样例&#xff0c;如果是长度为3的连续O&#xff0c;直接在两边放就行&#xff0c;然后一直用中间的水填到其他地方 #include<bits/stdc.h> using namespace std; const int N 3e510,mod 998244353; #define int long long int n…...

给csgo游戏搬砖新手的十大建议

1、不要参与赌博性质的开箱和炼金&#xff0c;因为真的会上瘾&#xff0c;赚了还好&#xff0c;亏了你得哭。 2、实在想要玩饰品&#xff0c;直接去悠悠有品或者网易buff看价格&#xff0c;底价再砍10元&#xff0c;总会有人愿意卖的。 3、在steam上不要接受陌生人的好友申请…...

西南科技大学模拟电子技术实验一(常用电子仪器的使用及电子元器件的识别)预习报告

一、计算/设计过程 说明:本实验是验证性实验,计算预测验证结果。是设计性实验一定要从系统指标计算出元 1、用万用表电阻挡测量实验板(箱)上电位器(可调电阻)的参数范围。 0~1kΩ电阻: 1k*0%=0 1k*100%=1k 所以范围为0~1k 0~10kΩ电阻: 10k*0%=0 10k*…...

回归分析例题(多元统计分析期末复习)

例一 例二 一元线性回归 解&#xff1a; &#xff08;1&#xff09;y a ^ \hat{a} a^ b ^ \hat{b} b^x&#xff0c;求线性回归方程即求出 a ^ \hat{a} a^和 b ^ \hat{b} b^ 而 b ^ \hat{b} b^ L x y L x x { {L_{xy}} \over {L_{xx}} } Lxx​Lxy​​ 所以我们首先需要计算 L x…...

Linux多路转接select,poll

文章目录 目录 文章目录 一、五种IO模型 1.阻塞IO: 2.非阻塞IO 3.信号驱动IO 4.IO多路转接 5.异步IO 二、高级IO的一些重要概念 1.同步通信和异步通信 2.阻塞和非阻塞 三、其他高级IO 四、非阻塞IO 1.fctl函数 2.实现setNoBlock函数&#xff0c;将文件描述符设置…...

如何轻松将 4K 转换为 1080p 高清视频

由于某些原因&#xff0c;你可能有一些 4K 视频&#xff0c;与1080p、1080i、720p、720i等高清视频相比&#xff0c;4K 视频具有更高的分辨率&#xff0c;可以给您带来更多的视觉和听觉享受。但是&#xff0c;播放4k 视频是不太容易的&#xff0c;因为超高清电视没有高清电视那…...

责任链模式 (Chain of Responsibility Pattern)

定义 责任链模式是一种行为型设计模式&#xff0c;用于在对象间建立一条处理请求的链。它允许多个对象有机会处理请求&#xff0c;从而减少请求的发送者和接收者之间的耦合。在责任链模式中&#xff0c;每个接收者包含对另一个接收者的引用&#xff0c;形成一条链。如果一个对…...

企业营销管理能够实现自动化吗?怎么做?

当今企业面临着越来越多的营销难题&#xff1a;如何有效培育潜在客户、如何提高营销活动的效果、如何优化营销资源的分配......企业的营销管理怎么做&#xff1f;或许CRM系统营销自动化会起到作用。 客户细分&#xff1a; 企业可以通过CRM的客户细分功能&#xff0c;根据客户…...

【数据结构】什么是栈?

&#x1f984;个人主页:修修修也 &#x1f38f;所属专栏:数据结构 ⚙️操作环境:Visual Studio 2022 目录 &#x1f4cc;栈的定义 &#x1f4cc;元素进栈出栈的顺序 &#x1f4cc;栈的抽象数据类型 &#x1f4cc;栈的顺序存储结构 &#x1f4cc;栈的链式存储结构 链栈的进…...

基于C#实现鸡尾酒排序(双向冒泡排序)

通俗易懂点的话&#xff0c;就叫“双向冒泡排序”。 冒泡是一个单向的从小到大或者从大到小的交换排序&#xff0c;而鸡尾酒排序是双向的&#xff0c;从一端进行从小到大排序&#xff0c;从另一端进行从大到小排序。 从图中可以看到&#xff0c;第一次正向比较&#xff0c;我们…...

CentOS添加开机启动

1.编写项目启动脚本&#xff08;run.sh&#xff09; #!/bin/bash-切换到程序所在路径 cd /home/cavs_install/app/cavs-admin/target/ # 等待其他组件启动完毕后再启动本项目&#xff08;如果不需要等待&#xff0c;本步骤可省略&#xff09; sleep 300 # 实际启动命令 nohup …...

SpringCloudAlibaba之Nacos的持久化和高可用——详细讲解

目录 一、Nacos持久化 1.持久化说明 2.安装mysql数据库5.6.5以上版本(略) 3.修改配置文件 二、nacos高可用 1.集群说明 2.nacos集群架构图 2.集群搭建注意事项 3.集群规划 4.搭建nacos集群 5.安装Nginx 6.配置nginx conf配置文件 7.启动nginx进行测试即可 一、Nacos持久…...

vue3安装eslint和prettier,最简单的步骤

第1步&#xff1a; 安装eslint yarn add eslint -D 第2步&#xff1a; 在根文件夹中&#xff0c;创建.eslintrc.js文件 第3步&#xff1a; 在package.json文件中新增命令 "lint": "eslint --fix --ext .ts,.tsx,.vue src --quiet","prettier"…...

Day32| Leetcode 122. 买卖股票的最佳时机 II Leetcode 55. 跳跃游戏 Leetcode 45. 跳跃游戏 II

Leetcode 122. 买卖股票的最佳时机 II 题目链接 122 买卖股票的最佳时机 II 本题目设计的还是比较巧妙的&#xff0c;把最终的利润分为每天的利润就解决了&#xff08;贪心&#xff09;&#xff0c;每天的利润就是前一天买进&#xff0c;后一天卖出&#xff0c;转化到代码上就…...

前端响应式设计新趋势:别再用媒体查询了

前端响应式设计新趋势&#xff1a;别再用媒体查询了 什么是前端响应式设计新趋势&#xff1f; 前端响应式设计新趋势是指在前端开发中&#xff0c;随着技术的发展和设备的多样化&#xff0c;出现的新的响应式设计方法和策略。别以为响应式设计只是使用媒体查询&#xff0c;那是…...

Qwen3-ASR-0.6B企业级应用:呼叫中心1000路并发语音转写架构

Qwen3-ASR-0.6B企业级应用&#xff1a;呼叫中心1000路并发语音转写架构 1. 呼叫中心语音转写的挑战与机遇 现代呼叫中心每天处理成千上万的客户通话&#xff0c;这些海量语音数据蕴含着宝贵的商业价值。但传统语音转写方案面临三大痛点&#xff1a;处理速度慢导致响应延迟、并…...

保姆级教程:从下载到畅用,在Mac上完美运行嘉立创EDA专业版的完整避坑指南

从零开始&#xff1a;MacBook上无痛安装嘉立创EDA专业版的终极指南 第一次在Mac上安装专业设计软件时&#xff0c;那种既期待又忐忑的心情我太熟悉了。特别是当看到"已损坏&#xff0c;无法打开"的提示时&#xff0c;很多人的第一反应都是怀疑自己哪里操作错了。别担…...

从医学影像到自动驾驶:Grad-CAM如何成为AI模型‘合规’与‘可信’的敲门砖?

Grad-CAM&#xff1a;撬动AI可信革命的视觉解释引擎 当一位放射科医生面对AI系统标注的肺部CT影像时&#xff0c;他真正需要的不只是一个"疑似恶性肿瘤"的结论&#xff0c;而是想知道&#xff1a;这个判断究竟基于病灶的哪些特征&#xff1f;同样&#xff0c;当自动驾…...

惠普OMEN游戏本终极性能优化指南:OmenSuperHub开源工具完整教程

惠普OMEN游戏本终极性能优化指南&#xff1a;OmenSuperHub开源工具完整教程 【免费下载链接】OmenSuperHub 使用 WMI BIOS控制性能和风扇速度&#xff0c;自动解除DB功耗限制。 项目地址: https://gitcode.com/gh_mirrors/om/OmenSuperHub 还在为惠普OMEN游戏本官方软件…...

数据治理范围演进:从二维业务数据 迈向企业全域数据治理

引言&#xff1a;一次“理论上正确、实际上失效”的AI决策 一次“理论上正确、实际上被否决”的AI建议 某科技公司有一款战略级产品。公司决策层达成共识——即便亏损&#xff0c;也要持续投入&#xff0c;以抢占市场份额、建立生态壁垒。但这个战略定性&#xff0c;考虑到市场…...

Rust泛型编程深度解析

Rust泛型编程深度解析作为一名从后端开发转向Rust的开发者&#xff0c;我发现Rust的泛型系统是其最强大的特性之一。泛型允许我们编写更加通用和可重用的代码&#xff0c;同时保持类型安全。今天我想分享一下我对Rust泛型编程的理解和实践。什么是泛型&#xff1f; 泛型是一种编…...

三菱PLC实战PID温控:从公式到烧水壶的完整调试指南

1. PID控制原理&#xff1a;从烧水壶理解温度调节 第一次接触PID控制时&#xff0c;我也被那些数学公式吓到了。直到有天盯着家里的烧水壶发呆&#xff0c;突然发现它就是个完美的温控案例——我们需要让水温稳定在某个设定值&#xff08;比如100℃&#xff09;&#xff0c;这…...

搜索工程师必读:多模态大模型在Query理解、结果重排、反作弊三大场景的9种非标应用(含PyTorch可复现代码片段)

第一章&#xff1a;多模态大模型在搜索中的应用 2026奇点智能技术大会(https://ml-summit.org) 传统搜索引擎依赖文本匹配与关键词统计&#xff0c;难以理解用户查询背后的语义意图及跨模态关联。多模态大模型&#xff08;Multimodal Large Language Models, MLLMs&#xff0…...

C2000系列DSP中CLB模块的Syscfg配置问题排查指南

1. 遇到CLB模块配置问题的常见表现 最近在调试C2000系列DSP的CLB模块时&#xff0c;发现使用Syscfg配置工具后&#xff0c;编译通过但没生成预期的.vcd和.html文件。这个问题困扰了我好几天&#xff0c;相信不少开发者也会遇到类似情况。今天我就把排查过程和解决方案详细分享给…...