【Mac开发环境搭建】JDK安装、多JDK安装与切换

news2024/11/26 20:25:19

文章目录

  • JDK下载与安装
    • 下载
    • 安装
  • 配置环境变量
  • 安装多个JDK共存

JDK下载与安装

下载

Oracle官网提供了非常多个版本的JDK供下载,可以点击如下链接重定向到JDK下载页面
ORACLE官网JDK下载

在这里插入图片描述

安装

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
下面的官方文档可以点开收藏到浏览器的收藏夹,这样后续在开发的过程中方便寻找

在这里插入图片描述

配置环境变量

首先双击打开终端

在这里插入图片描述
在这里插入图片描述

首先执行cd /Library/Java/JavaVirtualMachines进入Java虚拟机目录,执行ls查看自己安装的jdk版本号

在这里插入图片描述
想要为哪个jdk配置环境,就复制哪个jdk名字出来,如jdk-17.jdk

执行ls -af命令,看看是否存在.bash_profile文件,如果是新电脑,可能是没有这个文件的,需要自己创建

在这里插入图片描述
如果没有.bash_profile文件的话,执行touch .bash_profile来创建这个文件

存在这个文件之后,运行open .bash_profile来打开这个文件,并写入如下配置,注意,jdk-17.jdk需要改成你的版本,写入之后,使用command s保存,关闭这个文件(一定要关闭,不然source可能不生效,左上角x掉即可)

#jdk
export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.
export CLASSPATH=$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar:.

在这里插入图片描述

接着执行source .bash_profile来使配置文件生效,最后使用java -version来验证是否安装成功,如果成功输出,证明安装成功,恭喜恭喜
在这里插入图片描述

如果只需要安装一个JDK,那到这里就结束去干饭啦,如果还想安装更多的版本,那就继续往下看

安装多个JDK共存

有的时候,我们需要同时下载多个JDK,因为不同项目使用的版本不一定相同(比如老项目用的是jdk8,新项目用的是jdk17),那我们怎么样安装多个JDK呢,其实安装过程和上面的安装过程一致即可,安装完成之后只需要修改一下配置文件就行

等新的JDK安装完成之后,比如说我又安装了一个JDK8,还是先使用open .bash_profile来打开配置文件,将之前的配置改成如下配置,jdk-1.8.jdkjdk-17.jdk要改成你自己的版本,JAVA_8_HOME只是一个变量名,换成ZhangSan和Lisi都行,重要的是上下要对应,注意,jdk8jdk17是后续切换JDK版本的命令,建议简短容易记

#jdk
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export PATH=$JAVA_HOME/bin:$PATH:.

alias jdk8='export JAVA_HOME=$JAVA_8_HOME'
alias jdk17='export JAVA_HOME=$JAVA_17_HOME'

在这里插入图片描述
配置文件写完之后,执行source .bash_profile来使配置文件生效,接下来验证是否成功

在这里插入图片描述
到这里安装就结束啦,如果觉得本文有帮助的话,可以点个赞鼓励一下作者呀

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

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

相关文章

纯前端实现的验证码

需求 前端实现验证码输入封装 本质绘制随机数,并进行校验function GVerify(options) { // 创建一个图形验证码对象,接收options对象为参数this.options { // 默认options参数值id: , // 容器IdcanvasId: verifyCanvas, // canvas的IDwidth: 100%, // 默…

windows下使用FCL(Flexible-collision-library)

windows下使用FCL(The Flexible-collision-library) FCL做为一款开源的碰撞检测库,支持多种基础的几何体,及支持C和python,在windows和linux平台均可以使用。是一款计算高效的碰撞检测工具。在机械臂规划控制框架movei…

Shopee买家通系统一款全自动操作虾皮买家号的软件

Shopee买家通系统可以全自动批量注册虾皮买家号,注册时可以自动调用手机号、自动接收短信验证、自动绑地址及支付卡,注册成功后还能自动绑定邮箱进行验证。 软件支持5个国家使用,越南、泰国、菲律宾、印度尼西亚、马来西亚。 内置防指纹技术 …

jenkins展示html报告样式需要注意的要点

一、jenkins展示html报告样式需要注意的要点 最后:

【Linux】vim

文章目录 一、vim是什么?二 、命令模式三、插入模式四、底行模式五、vim配置 一、vim是什么? Vim是一个强大的文本编辑器,它是Vi的增强版,支持多种语法高亮、插件扩展、多模式操作等功能。Vim有三种基本的工作模式:命…

操作系统——对文件的 基本操作(王道视频p65)

1.总体概述: 2.进程打开文件表 和 系统打开文件表:

产品经理日常工作流程汇总

产品经理在日常的团队工作过程中,承担着重要的衔接作用。由于工作性质的特殊性,产品经理日常工作内容特别繁杂,导致很多产品小白刚一上手,会无从下手,经常丢三落四。这时拥有一个好的工作流程,很大程度上就…

CAD圆锥齿轮画法

大端面的法向是大端模数的标准齿形,然后分度圆线按照45和中心线相交,然后齿顶圆齿根圆的母线和相交点连线。

硕鼠——视频下载利器

相信很多做自媒体、剪辑的同志们,经常会遇到一个棘手的问题:剪辑的素材从何而来。诸如很多高燃混剪的视频,往往需要多个影视作品中的原画来进行二次创作,可是这些视频素材从何而来呢? 有小伙伴们提出,通过录…

【基础IO⑨】:重定向实现原理 “Linux下一切皆文件“

【基础IO⑨】:重定向原理 与 "Linux下一切皆文件" 一.重定向1.实现原理2.输出重定向3.输入重定向4.补充:简易shell中实现重定向 二."Linux下一切皆文件"1.虚拟文件系统(VFS) 一.重定向 我们首先关闭2号文件描述符,然后再…

Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出

本心、输入输出、结果 文章目录 Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出前言三星声称库克相关图片弘扬爱国精神 Apple :苹果将在明年年底推出自己的 AI,预计将随 iOS 18 一起推出 编辑:简简单…

MySQL——Centos7下环境安装

目录 0.说明 1. 检查环境(systemctl start/stop/restart) 2. 检查系统安装包(rpm -qa) 3. 卸载这些默认安装包(yum remove、xargs) 4. 获取mysql官方yum源 5. 安装mysql yum源,对比前后yu…

【网络】五中IO模型介绍 + 多路转接中select和poll服务器的简单编写

高级IO 前言正式开始前面的IO函数简单过一遍什么叫做低效的IO钓鱼的例子同步IO和异步IO五种IO模型阻塞IO非阻塞IO信号驱动多路转接异步IO 小结 代码演示非阻塞IO多路转接select介绍简易select服务器timeout 为 nullptrtimeout 为 {0, 0}timeout 为 {5, 0}调用accept select编写…

已经不做程序媛4年半了,后悔么?不好说...但再次看到之前写的博客,真的感慨万分。

四年半前,我还在大四实习,做了一年Java开发。四年半后,我是地理信息行业的一名销售经理。 今天,突然点开了CSDN,看到自己的博客有很多人看过,霎时间感慨万千…因为上一次这么认真的对待自己,竟…

网络运维Day06

文章目录 磁盘空间管理一块硬盘的“艺术”之旅识别磁盘分区规划分区模式MBR(主启动记录模式)GPT分区 使用GPT分区方案分区 格式化与挂载使用格式化挂载使用 实现开机自动挂载实验 光盘挂载交换空间 总结 磁盘空间管理 磁盘空间管理 扇区默认512字节 一块硬盘的“艺术”之旅 …

【Spring】spring中存储Bean(对象)的相关注解及相关用法

五大注解:Controller,Service,Repository,Component,Configuration 1、controller 控制器(注入服务) 控制层,接收请求,对请求进⾏处理,并进⾏响应。用于标注控制层,相当于struts中的…

【mmcv报错】ModuleNotFoundError: No module named ‘mmcv.runner

跑一个代码需要用到mmcv和mmseg 其中有两行代码: from mmcv.runner import load_checkpoint from mmseg.utils import get_root_logger我先是按照官方推荐的安装方法去安装了mmcv和mmseg pip install -U openmim mim install mmcv它会自动帮你安装mmengine 我的cu…

关于Vue使用props传值遇到的一些问题

一、The data property “tableData” is already declared as a prop. Use prop default value instead. 翻译过来:数据属性“tableData”已声明为prop。请改prop默认值。 将父组件的prop传过去变量改一下 二、prop传值,子组件比父组件先渲染&#…

内存取证 worldskills3.vmem与gs02.jpg题目WP

worldskills3.vmem 题目信息 获取admin用户密码是多少? 获取ip和主机名是什么? 获取桌面上的flag.txt文件的内容是什么? 服务器存在一个挖矿病毒,矿池地址是? 恶意代码在系统中注册了服务,服务名是什么&a…