Mac上多版本JDK安装和管理

文章目录

JDK安装

去Oracle官网下载自己需要的JDK版本:

https://www.oracle.com/java/technologies/downloads/

Mac电脑,可以选择下载dmg文件,下载完成后,一直双击,按提示安装即可。

因为Oracle官网下载需要登录账号,比较麻烦,可以去华为云上面下载,地址如下:

https://repo.huaweicloud.com/java/jdk/

Mac上安装好后的路径为:

/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk

/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk

问题描述

Mac电脑上之前安装过JDK8,现在需要安装JDK11,想做到动态切换,方便不同项目的开发。

注意点

苹果公司在开发 macOS 时已经内置了 jdk 版本管理的功能。它也提供了相应的 command line 工具。使用 /usr/libexec/java_home 即可直接查看当前的 $JAVA_HOME。

测试如下:

bash 复制代码
/usr/libexec/java_home -V

输出:
Matching Java Virtual Machines (3):
    11.0.2 (x86_64) "Oracle Corporation" - "Java SE 11.0.2" /Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
    1.8.291.10 (x86_64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home
    1.8.0_291 (x86_64) "Oracle Corporation" - "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home
12345678

也可以run指定的版本:

bash 复制代码
/usr/libexec/java_home -v1.8
1

动态管理

1.打开配置文件
bash 复制代码
vim ~/.bash_profile
1
2. 配置

具体配置如下:

bash 复制代码
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_291.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.0.2.jdk/Contents/Home

# 最后安装的版本,这样当自动更新时,始终指向最新版本
export JAVA_HOME=`/usr/libexec/java_home`

M2_HOME=/devtools/apache-maven-3.8.1
PATH=$PATH:$M2_HOME/bin:/usr/local/mysql/bin:/usr/local/bin
export PATH

# alias命令动态切换JDK版本
alias jdk8="export JAVA_HOME=$JAVA_8_HOME"
alias jdk11="export JAVA_HOME=$JAVA_11_HOME"
12345678910111213

思路:

不同的JDK版本,分别定义不同的环境变量,然后通过alias命令实现动态切换的效果。

使配置生效
bash 复制代码
source ~/.bash_profile
1
测试

输入下面的命令进行测试:

bash 复制代码
java -version

jdk8
jdk11

在终端执行jdk8,此时就切换到java8了;
执行jdk11,就切换到java11了
1234567

转至:https://blog.csdn.net/u014163312/article/details/123297401

相关推荐
无心水27 分钟前
【分布式利器:腾讯TSF】10、TSF故障排查与架构评审实战:Java架构师从救火到防火的生产哲学
java·人工智能·分布式·架构·限流·分布式利器·腾讯tsf
系'辞3 小时前
【obsidian指南】配置obsidian git插件,实现obsidian数据定时同步到github仓库(Mac电脑)
macos·github·agent·知识库
Boilermaker19928 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
Cherry的跨界思维8 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
MM_MS8 小时前
Halcon变量控制类型、数据类型转换、字符串格式化、元组操作
开发语言·人工智能·深度学习·算法·目标检测·计算机视觉·视觉检测
꧁Q༒ོγ꧂8 小时前
LaTeX 语法入门指南
开发语言·latex
njsgcs9 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_999 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
一嘴一个橘子9 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34169 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java