关键在于通过分版本环境变量(如java_home_8、java_home_17)与动态java_home引用实现精准切换,path仅保留%java_home%\bin一条入口,并清除oracle javapath等干扰项。

多版本 JDK 共存的关键不在装几个,而在让系统清楚“此刻该用哪个”。核心就两件事:环境变量要分得清,切换路径要指得准。只要把 JAVA_HOME 和 PATH 配对管好,切换就只是改一个变量值的事。
分版本设独立环境变量
不要直接把 JDK 路径写死在 JAVA_HOME 里。先为每个版本建专属变量,命名清晰、路径规范:
- 新建系统变量 JAVA_HOME_8,值为
C:\Program Files\Java\jdk1.8.0_391(注意:路径不含中文、不带尾部斜杠、避免空格;若含空格,建议改用短路径如C:\jdk8) - 新建 JAVA_HOME_17,值为
C:\jdk17 - 新建 JAVA_HOME_21,值为
C:\jdk21 - 再新建主变量 JAVA_HOME,初始值设为
%JAVA_HOME_8%(用百分号引用,不是实际路径)
PATH 中只留一个动态入口
PATH 不要堆多个 JDK 的 bin 目录,否则顺序错乱就白配。只加一行:
- 编辑系统 PATH 变量,在最前面新增:
%JAVA_HOME%\bin - 务必删掉所有其他 JDK 相关路径,比如
C:\Program Files\Java\jdk-17\bin或 Oracle 自动加的C:\Program Files\Common Files\Oracle\Java\javapath - Windows 下 PATH 编辑时别让系统自动加引号,否则会失效
切换版本只需改一个值
每次换 JDK,不用重装、不用改 PATH,只做三步:
- 打开“系统属性 → 高级 → 环境变量”,找到 JAVA_HOME
- 把它从
%JAVA_HOME_8%改成%JAVA_HOME_17%(或你想要的版本) - 关掉所有已打开的命令行窗口,新开一个 CMD 或 PowerShell,执行:
java -version和javac -version—— 两个结果必须一致才说明切成功
IDE 和构建工具要单独配
命令行切好了,不代表 IDEA 或 Maven 就跟着变。它们不认系统 JAVA_HOME,得手动指定:
- IntelliJ IDEA:File → Project Structure → Project SDK → 点“+”添加对应 JDK 目录;再进 Modules → Language level 选匹配版本
-
Maven:检查
mvn -v输出的 Java 版本;若不对,确认它是否读取了 JAVA_HOME —— 有些 Maven 封装脚本会忽略,此时可在MAVEN_OPTS中显式指定:-Djava.home=%JAVA_HOME% - Tomcat / Spring Boot DevTools:启动脚本或 IDE 运行配置中,明确设置 JRE 或 Java Home 路径
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











