Windows下多个JDK版本快速切换
Windows下多个JDK版本快速切换,以windows11为例,jdk1.8\jdk11\jdk17三个版本实现快速切换。
Windows 下多个 JDK 版本的快速切换方案
——基于软链接(Symlink)+ Git Bash 的工程化实践
适用场景
在日常开发中,往往同时维护多个项目:
老项目仍停留在 JDK 8
新项目已升级到 JDK 17 / 21 / 25
而 Windows 系统层面,
JAVA_HOME只能指向一个 JDK,频繁手动切换不仅低效,也极易引发环境混乱。
本文以 Windows 11 为例,在已安装 JDK 1.8 / 17 / 21 / 25 的前提下,构建一套:
一次配置,终身一键切换 的 JDK 管理方案。
一、核心设计思想
1.1 问题本质
-
JAVA_HOME只能配置一次 -
IDE / Maven / Gradle / 命令行高度依赖
JAVA_HOME -
频繁修改环境变量 = 高风险 + 低效率
1.2 解决方案抽象
不切换环境变量,而是切换环境变量“指向的目标”
核心思路:
-
固定
JAVA_HOME -
让
JAVA_HOME指向一个 “虚拟入口目录” -
该入口通过 软链接 动态指向不同版本的 JDK
1.3 结构示意
JAVA_HOME
│
▼
D:\jdk\default (软链接,动态变化)
│
├──► D:\jdk\jdk1.8.0_471
├──► D:\jdk\jdk-17.0.17
├──► D:\jdk\jdk-21.0.9
└──► D:\jdk\jdk-25.0.1
结论:
JAVA_HOME永远不变只需要“切换软链接指向”即可完成 JDK 切换
二、准备工作
2.1 安装 Git Bash
Git Bash 提供类 Linux / Unix 的命令行能力,是本方案执行脚本的基础环境。
-
官网地址:https://git-scm.com/
-
关键组件:安装时确保勾选 “Git Bash Here” 和 “Use Git from Git Bash only”(避免与 Windows CMD 产生路径冲突)。
-
安装完成后,确保可以正常打开 Git Bash
2.2 规范 JDK 目录结构
建议在 非系统盘(如 D 盘) 统一管理 JDK:
D:\jdk
目录规划说明:
-
版本目录:每个 JDK 一个独立目录
-
虚拟入口:
default用作软链接入口
⚠️ 注意:
-
如果你之前手动创建过
D:\jdk\default文件夹,请先删除 -
该目录将由脚本自动创建为 软链接
2.3 系统环境变量配置
路径:Win + I → 系统 → 高级系统设置 → 环境变量
| 变量名 | 变量值 | 类型 |
|---|---|---|
JAVA_HOME |
D:\jdk\default |
用户/系统变量 |
CLASSPATH |
.;%JAVA_HOME%\lib\dt.jar;%JAVA_HOME%\lib\tools.jar; |
系统变量 |
Path 追加 |
%JAVA_HOME%\bin |
系统变量(置顶) |
⚠️ 重要:
JAVA_HOME必须指向default目录,而非具体版本目录。
CLASSPATH(兼容 JDK 8,JDK 9+ 实际已不再依赖)将
%JAVA_HOME%\bin添加到 Path 列表,并上移至第一行(防止系统自带路径干扰)。
三、JDK 安装说明
下载渠道
| 类型 | 推荐源 | 说明 |
|---|---|---|
| 官方归档 | Oracle JDK Archive | 需 Oracle 账号,版本最全 |
| 国内镜像 | INJDK 导航站 | 免登录,速度快,含多厂商发行版 |
安装要求
强烈建议使用压缩包版(zip)而非安装程序(exe):
-
下载对应版本的
.zip压缩包 -
解压至
D:\jdk\目录
形成如下目录结构:
D:\jdk\jdk1.8.0_471
D:\jdk\jdk-17.0.17
D:\jdk\jdk-21.0.9
D:\jdk\jdk-25.0.1
四、配置 JDK 快捷切换命令
4.1 为什么选择 Git Bash + alias
-
Windows 原生 CMD 功能有限
-
Git Bash 提供:
-
ln -s(软链接) -
alias(命令封装) -
类 Linux 脚本体验
-
非常适合做 “工程级环境切换”
4.2 编辑 .bashrc
.bashrc 位于当前用户主目录,用于定义终端启动时加载的命令与别名。
例如 windows 账号为 vincent,则这个在
C:/Users/vincent/.bashrc
操作步骤:
cd ~
vi .bashrc
或:
notepad .bashrc
4.3 alias 配置
# 允许 Git Bash 创建原生 Windows 软链接
export MSYS="winsymlinks:nativestrict"
# 默认软链接入口
export JDK_DEFAULT="/d/jdk/default"
# JDK 路径
export JDK8_PATH="/d/jdk/jdk1.8.0_471"
export JDK17_PATH="/d/jdk/jdk-17.0.17"
export JDK21_PATH="/d/jdk/jdk-21.0.9"
export JDK25_PATH="/d/jdk/jdk-25.0.1"
# 切换命令封装(在Git Bash执行)
alias jdk8="rm $JDK_DEFAULT && ln -s $JDK8_PATH $JDK_DEFAULT && java -version"
alias jdk17="rm $JDK_DEFAULT && ln -s $JDK17_PATH $JDK_DEFAULT && java -version"
alias jdk21="rm $JDK_DEFAULT && ln -s $JDK21_PATH $JDK_DEFAULT && java -version"
alias jdk25="rm $JDK_DEFAULT && ln -s $JDK25_PATH $JDK_DEFAULT && java -version"
保存后执行:
source ~/.bashrc
五、开启 Windows 开发者模式
默认情况下,Windows 创建软链接需要管理员权限。
开启 开发者模式 后,可避免每次都“以管理员身份运行”。
操作路径:
-
Win + I→ 打开 设置 -
系统 → 开发者选项
-
打开 开发者模式(Developer Mode)
开启后,普通权限下的 Git Bash 也可正常执行
ln -s
六、验证与使用
6.1 使用方式
打开 Git Bash,直接输入:
jdk8
java version “1.8.0_471”
Java™ SE Runtime Environment (build 1.8.0_471-b09)
Java HotSpot™ 64-Bit Server VM (build 25.471-b09, mixed mode)
jdk17
java version “17.0.17” 2025-10-21 LTS
Java™ SE Runtime Environment (build 17.0.17+8-LTS-360)
Java HotSpot™ 64-Bit Server VM (build 17.0.17+8-LTS-360, mixed mode, sharing)
jdk21
java version “21.0.9” 2025-10-21 LTS
Java™ SE Runtime Environment (build 21.0.9+7-LTS-338)
Java HotSpot™ 64-Bit Server VM (build 21.0.9+7-LTS-338, mixed mode, sharing)
jdk25
java version “25.0.1” 2025-10-21 LTS
Java™ SE Runtime Environment (build 25.0.1+8-LTS-27)
Java HotSpot™ 64-Bit Server VM (build 25.0.1+8-LTS-27, mixed mode, sharing)
七、引用Reference
- CentOS8搭建nfs服务
- Kubernetes1.25.4版本安装
- kubeasz安装kubernetes1.25.5
- k8s一键安装redis单机版
- k8s一键安装mysql8单机版
- k8s部署springboot应用
- Docker安装及学习
- Docker制作springboot运行应用镜像
- Docker制作Java8环境镜像
- Docker安装Mysql5.7.31
- Docker安装Mysql8
- Elasticsearch单机版本安装
- Elasticsearch集群安装
- ELK 8.17.0 安装部署手册
- ELK 9.2.0 安装部署手册
- Docker安装ELK
- zookeeper集群安装
- Nginx日志切割
- RabbitMQ集群安装
- Docker安装RabbitMQ单机版
- springboot集成prometheus+grafana
- windows11安装android应用
- Windows下多个JDK版本快速切换
- MongoDB主从仲裁模式安装
- MongoDB单机版安装
- Redis集群安装
- Docker安装Nginx
- RabbitMQ单节点安装
- Docker快速部署apollo
更多推荐

所有评论(0)