
文章目录
- [JDK8 + JDK17 绿色解压共存方案【全程**不修改任何系统环境变量**】](#JDK8 + JDK17 绿色解压共存方案【全程不修改任何系统环境变量】)
-
- [✅ 一、下载(Eclipse Temurin,免费商用,选ZIP绿色包)](#✅ 一、下载(Eclipse Temurin,免费商用,选ZIP绿色包))
- [✅ 二、解压部署(重点,防止多层嵌套)](#✅ 二、解压部署(重点,防止多层嵌套))
- [✅ 三、使用方式(3种,全部**不改动系统环境变量**)](#✅ 三、使用方式(3种,全部不改动系统环境变量))
- [✅ 四、IDEA开发使用(强烈推荐,IDE不依赖系统环境变量)](#✅ 四、IDEA开发使用(强烈推荐,IDE不依赖系统环境变量))
- [✅ 五、卸载](#✅ 五、卸载)
- [✅ 六、优缺点总结](#✅ 六、优缺点总结)
- [✅ 七、常见坑](#✅ 七、常见坑)
- [✅ 八、Maven/Gradle使用补充(不设置系统环境变量)](#✅ 八、Maven/Gradle使用补充(不设置系统环境变量))
JDK8 + JDK17 绿色解压共存方案【全程不修改任何系统环境变量】
核心:不新建JAVA_HOME、不改动Path;纯绿色解压,不写注册表,两个JDK完全隔离,互不冲突。
存放根目录:
D:\data\env
- JDK8:
D:\data\env\jdk8- JDK17:
D:\data\env\jdk17
✅ 一、下载(Eclipse Temurin,免费商用,选ZIP绿色包)
官网:https://adoptium.net/zh-CN/temurin/releases
- Version:8 / 17
- OS:Windows
- Package:JDK(不要JRE!JRE无javac)
- Arch:x64
- 文件类型:ZIP
直链:
- JDK17 Windows x64 ZIP
https://github.com/adoptium/temurin17-binaries/releases/download/jdk-17.0.20.1+1/OpenJDK17U-jdk_x64_windows_hotspot_17.0.20.1_1.zip

- JDK8 Windows x64 ZIP
https://github.com/adoptium/temurin8-binaries/releases/download/jdk8u422-b05/OpenJDK8U-jdk_x64_windows_hotspot_8u422b05.zip

✅ 二、解压部署(重点,防止多层嵌套)
- D盘手动创建文件夹
D:\data\env - 解压zip包,取出里面内层jdk文件夹 ,放到env目录下
- JDK8解压完成后:
D:\data\env\jdk8\bin\java.exe必须存在 - JDK17解压完成后:
D:\data\env\jdk17\bin\java.exe必须存在
- JDK8解压完成后:
❌ 错误:
D:\data\env\jdk17\jdk-17.0.20\bin,多层嵌套会导致路径错误。目录树:
D:\data\env
├─ jdk8
└─ jdk17
✅ 三、使用方式(3种,全部不改动系统环境变量)
方式1:直接写绝对路径(最简单,推荐临时少量命令)
直接在CMD/PowerShell写完整路径调用java、javac
cmd
# 查看JDK17版本
"D:\data\env\jdk17\bin\java.exe" -version
"D:\data\env\jdk17\bin\javac.exe" -version
# 查看JDK8版本
"D:\data\env\jdk8\bin\java.exe" -version
"D:\data\env\jdk8\bin\javac.exe" -version
编译运行示例(JDK17编译Hello.java)
cmd
"D:\data\env\jdk17\bin\javac.exe" D:\test\Hello.java
"D:\data\env\jdk17\bin\java.exe" D:\test\Hello
方式2:临时注入PATH(当前终端窗口简写java,关闭窗口失效,不改系统)
打开CMD,执行下面任意一组,当前窗口就可以直接敲java,关闭CMD自动消失
cmd
::当前窗口切换为 JDK17
set PATH=D:\data\env\jdk17\bin;%PATH%
java -version
javac -version
cmd
::当前窗口切换为 JDK8
set PATH=D:\data\env\jdk8\bin;%PATH%
java -version
javac -version
方式3:一键启动对应JDK终端脚本(推荐!最舒服)
在D:\data\env新建2个bat文件,双击直接打开一个已经加载好对应JDK的CMD窗口,完全不修改系统
脚本1:StartJdk17.bat
bat
@echo off
chcp 65001
set PATH=D:\data\env\jdk17\bin;%PATH%
echo ==================================
echo 当前终端已加载 JDK17
echo 关闭窗口就失效,不修改系统环境变量
echo ==================================
cmd
脚本2:StartJdk8.bat
bat
@echo off
chcp 65001
set PATH=D:\data\env\jdk8\bin;%PATH%
echo ==================================
echo 当前终端已加载 JDK8
echo 关闭窗口就失效,不修改系统环境变量
echo ==================================
cmd
使用:双击
StartJdk17.bat,弹出新CMD,直接敲java、javac就是jdk17;双击另一个就是jdk8。互不干扰。
✅ 四、IDEA开发使用(强烈推荐,IDE不依赖系统环境变量)
IDEA项目可以独立指定JDK,不受系统任何环境变量影响:
- File → Project Structure → Project SDK
- Add SDK → Add JDK
- 选择目录:
D:\data\env\jdk17或者D:\data\env\jdk8
效果:项目A用JDK8,项目B用JDK17,完全隔离。
✅ 五、卸载
直接删除文件夹:D:\data\env\jdk8 或者 D:\data\env\jdk17
因为没有修改系统环境变量,无需清理注册表、环境变量。
✅ 六、优缺点总结
✅ 优点
- 零污染系统,不新增JAVA_HOME,不改Path;随时删除,不留垃圾
- JDK8/JDK17完全隔离,永远不会出现版本冲突
- 绿色解压,可拷贝整个env文件夹到其他电脑直接使用
❌ 缺点
- 不配置全局环境变量,新开空白CMD默认无法直接敲
java,需要用脚本或写绝对路径 - 如果需要在gitbash、maven等工具全局调用java,需要单独在工具内配置路径
✅ 七、常见坑
- 路径带空格/中文:你的
D:\data\env无空格中文,没问题;加引号是好习惯 - 下载成JRE:JRE没有javac,下载必须选JDK
- 多层解压嵌套:解压后确认
xxx\bin\java.exe直接存在 - bat脚本乱码:脚本第一行
chcp 65001解决中文乱码
✅ 八、Maven/Gradle使用补充(不设置系统环境变量)
如果用maven,修改maven的conf/settings.xml或者在脚本里临时指定JAVA_HOME:
bat
@echo off
chcp 65001
set JAVA_HOME=D:\data\env\jdk17
set PATH=%JAVA_HOME%\bin;%PATH%
cmd
maven读取当前窗口临时JAVA_HOME,不会改动系统。