通过设置java8_home、java17_home等独立变量,并让java_home指向它们(如%java8_home%),再将%java_home%\bin加入path顶部,即可通过修改java_home值快速切换jdk版本,切换后需重启命令行并验证java -version。

核心思路是:不直接把具体 JDK 路径写死在 JAVA_HOME 里,而是用“中间变量”做跳转,再通过修改这个跳转目标,实现版本切换。
一、分步设置多个 JDK 的独立环境变量
在系统环境变量中,为每个 JDK 版本单独新建一个变量,命名清晰、路径准确:
- 变量名:JAVA8_HOME,变量值:C:\Program Files\Java\jdk1.8.0_333
- 变量名:JAVA17_HOME,变量值:C:\Program Files\Java\jdk-17.0.2
- 变量名:JAVA_HOME,变量值:%JAVA8_HOME%(注意:这里填的是另一个变量名,带百分号)
二、统一指向 JAVA_HOME 的 PATH 配置
在 Path 系统变量中,只添加一行:
在 Java 中初始化和管理阿里云 SDK客户端。包括单例模式、线程安全、endpoint 与 region 配置、VPC 终端节点、同步与异步等。
- %JAVA_HOME%\bin(不要加 jre\bin,现代 JDK 已不含独立 jre)
- 确保这一行排在 Path 列表最上方,避免被其他 Java 路径干扰
- 删掉旧的 Oracle 自动添加的 C:\Program Files (x86)\Common Files\Oracle\Java\javapath(它会锁定默认版本)
三、切换版本只需改一个地方
每次想换 JDK,只需修改 JAVA_HOME 的变量值:
- 切到 JDK 8 → 把 JAVA_HOME 值设为 %JAVA8_HOME%
- 切到 JDK 17 → 改成 %JAVA17_HOME%
改完后,**关闭并重新打开命令行窗口**(CMD/PowerShell/Terminal),再运行 java -version 即可验证。
四、进阶建议(提升效率)
如果频繁切换,可考虑以下方式:
- 写两个批处理脚本(如 use-jdk8.bat 和 use-jdk17.bat),用 setx JAVA_HOME "%JAVA8_HOME%" /m 自动更新系统变量(需管理员权限)
- Windows 用户可安装 JEnv for Windows(GitHub 开源工具),支持命令行一键切换:jenv use 17
- Mac/Linux 用户推荐原生 jenv,自动识别 /Library/Java/JavaVirtualMachines/ 下所有 JDK
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南










