Java多版本配置及版本切换(Mac适配)

Mac系统安装多个JDK并实现版本切换

1. ‌下载JDK安装包

访问Oracle官网下载页面:Java Downloads

选择对应版本的.dmg文件(如JDK 8、JDK 11、JDK 17、JDK 21等),下载后双击安装(无需额外配置)

2. ‌验证安装路径

安装完成后,JDK默认存放在/Library/Java/JavaVirtualMachines/目录下,可通过终端命令查看:

bash 复制代码
/usr/libexec/java_home -V  # 列出所有已安装的JDK版本及其路径

3. ‌配置环境变量

打开终端,编辑~/.bash_profile(或~/.zshrc,取决于你的shell环境):

bash 复制代码
open -e ~/.bash_profile  # 使用文本编辑器打开配置文件

添加以下内容(以JDK 8、JDK 11、JDK 17和JDK 21为例):

bash 复制代码
# ===================== Java 多版本核心配置(Mac适配) =====================
# 1. 定义各JDK路径(Mac默认路径)
export JAVA_8_HOME=/Library/Java/JavaVirtualMachines/jdk-1.8.jdk/Contents/Home
export JAVA_11_HOME=/Library/Java/JavaVirtualMachines/jdk-11.jdk/Contents/Home
export JAVA_17_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home
export JAVA_21_HOME=/Library/Java/JavaVirtualMachines/jdk-21.jdk/Contents/Home

# 2. 默认启动版本(可修改,推荐常用的如JAVA_17_HOME)
export JAVA_HOME=$JAVA_8_HOME

# 3. 一键切换函数(终端输入jdk8/jdk11/jdk17/jdk21即可,切换后自动提示版本)
jdk8() {
    export JAVA_HOME=$JAVA_8_HOME
    export PATH=$JAVA_HOME/bin:$PATH  # 刷新PATH,确保Mac优先识别当前JDK
    export CLASSPATH=".:$JAVA_HOME/lib/tools.jar:$JAVA_HOME/lib/dt.jar"  # 仅Java8必需
    echo "✅ Mac Java已切换至8 → $(java -version 2>&1 | head -n1 | awk -F '"' '{print $2}')"
}

jdk11() {
    export JAVA_HOME=$JAVA_11_HOME
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH="."  # Java11+移除tools.jar/dt.jar,Mac无需额外配置
    echo "✅ Mac Java已切换至11 → $(java -version 2>&1 | head -n1 | awk -F '"' '{print $2}')"
}

jdk17() {
    export JAVA_HOME=$JAVA_17_HOME
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH="."
    echo "✅ Mac Java已切换至17 → $(java -version 2>&1 | head -n1 | awk -F '"' '{print $2}')"
}

jdk21() {
    export JAVA_HOME=$JAVA_21_HOME
    export PATH=$JAVA_HOME/bin:$PATH
    export CLASSPATH="."
    echo "✅ Mac Java已切换至21 → $(java -version 2>&1 | head -n1 | awk -F '"' '{print $2}')"
}

# 4. 全局PATH优化(Mac终端优先识别自定义JDK,避免系统默认版本干扰)
export PATH=$JAVA_HOME/bin:$PATH:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin

另外,jdk8() {...}(简化写法,函数名和()之间不能有空格)也可写成function jdk8{...}(标准写法)

保存文件并使配置生效:

bash 复制代码
source ~/.bash_profile  # 或 source ~/.zshrc

4. ‌切换JDK版本

在终端中输入以下命令即可切换JDK版本:

bash 复制代码
jdk8   # 切换到JDK 8
jdk17  # 切换到JDK 17
java -version  # 验证当前JDK版本
相关推荐
AI你一生一世18 小时前
不止于时序存储:DolphinDB 如何成为 AI 时代的工业智能底座
java·人工智能·struts·时序数据库·工业智能·dolphindb·ai基础设施
云-缩影18 小时前
拆解 AI 图像生成应用的后端架构:ECS、OSS 和大模型 API 怎么配合
java·spring boot·后端
瑞克-桑切斯18 小时前
7、MySQL 慢查询排查与优化实战指南
java·服务器·数据库
海的透彻1 天前
dockerfile如何快速构建容器(java服务)
java·开发语言
code2cat1 天前
Java工具篇之Gradle:用任务图组织构建与交付
java·开发语言·单元测试·gradle
后台模板学习1 天前
大模型 Prompt 工程在电商订单系统中的踩坑记录
java·python·prompt
w_zero_one1 天前
算法--构造
java·数据结构·算法
SL_staff1 天前
制造业订单交付崩盘?用四层协同框架重建交付可信度(技术实践)
java·产品·全栈
SL_staff1 天前
打破风控迭代死循环:用决策编排重构业务与技术协作链路
java·产品·全栈
Mikko71 天前
Redis 连接数满了服务端有错误信息吗?连接数不增加却命令超时?6.2 实测连接池、超时与大 key 怎么判定
java·spring boot·redis·后端