关键不是卸载旧版,而是通过环境变量设计实现“按需生效”:用JAVA8_HOME等独立变量分别指向各JDK路径,再以JAVA_HOME为开关引用它们;Path中仅保留%JAVA_HOME%\bin且置顶,修改JAVA_HOME值并重启CMD即可切换版本。
要让多个jdk版本在windows上共存并灵活切换,关键不是卸载旧版,而是通过环境变量设计实现“按需生效”。核心思路是:用独立的变量名分别指向各jdk安装路径,再用统一的java_home作为“开关”,由它决定当前生效的是哪个版本。
准备多个JDK安装目录
每个JDK版本必须单独安装,路径不能重叠。例如:
-
JDK 8:安装到
D:\Java\jdk1.8.0_333 -
JDK 17:安装到
D:\Java\jdk-17.0.12 -
JDK 21:安装到
D:\Java\jdk-21.0.4
安装时注意取消勾选“Public JRE”或单独指定JRE路径,避免与JDK内嵌JRE冲突;不建议把JDK和JRE装在同一级文件夹下,防止覆盖。
设置带版本标识的环境变量
在“系统变量”中新建以下变量(变量名自定义,但需有意义):
-
变量名:
JAVA8_HOME,变量值:D:\Java\jdk1.8.0_333 -
变量名:
JAVA17_HOME,变量值:D:\Java\jdk-17.0.12 -
变量名:
JAVA21_HOME,变量值:D:\Java\jdk-21.0.4
这些变量只是“存地址”,本身不参与命令执行,后续靠JAVA_HOME引用它们。
通过 SSH 隧道从 Android 设备在互联网上对 Windows PC 实现完整远程控制的设置与使用指南,适用于远程桌面访问、安全 RDP 等。
配置主控变量JAVA_HOME和Path
只保留一个JAVA_HOME变量,它的值决定当前使用哪个JDK:
- 新建或编辑系统变量
JAVA_HOME,变量值设为:%JAVA17_HOME%(即引用上面定义的变量) - 编辑系统变量
Path,在最前面新增一项:%JAVA_HOME%\bin - 确保
Path中没有其他硬编码的JDK路径(如C:\Program Files\Java\...),否则会干扰版本识别
这样,只要修改JAVA_HOME的值为%JAVA8_HOME%或%JAVA21_HOME%,再重启命令行,java -version和javac -version就会立即反映新版本。
验证与日常切换
打开新cmd窗口后,依次执行:
-
echo %JAVA_HOME%—— 确认指向是否正确 -
java -version—— 查看运行时JVM版本 -
javac -version—— 查看编译器版本(二者应一致)
如果版本没变,常见原因是:未重启命令行窗口、Path里残留旧JDK路径、或system32目录下存在旧版java.exe(可手动删除C:\Windows\System32\java.exe等文件)。

















