windows推荐scoop:一键安装多个jdk版本后,用scoop reset temurin17jre秒切jdk17,自动更新path与java_home,无需改环境变量或重启终端。

一台电脑装多个 JDK 版本完全没问题,关键是怎么切得快、不冲突、不误事。不用每次打开系统设置改环境变量,也不用重启终端或电脑——选对方法,切换就是一条命令或一次点击的事。
Windows:用 Scoop 一键秒切
Scoop 是目前 Windows 下最干净、最稳的 JDK 管理方案。它不碰注册表,所有 JDK 都装在统一目录,PATH 自动更新,切完立刻生效。
- 以管理员身份打开 PowerShell,运行:
iwr -useb get.scoop.sh | iex - 添加 Java 仓库:
scoop bucket add java - 安装多个版本(比如 JDK 8、17、21):
scoop install temurin8jre temurin17jre temurin21jre - 切换只需一条命令:
scoop reset temurin17jre → 当前终端和后续新终端都立即使用 JDK 17
卸载也简单:scoop uninstall temurin8jre。比手动改 JAVA_HOME 安全得多,尤其适合常在项目间跳转的开发者。
macOS/Linux:用 jenv 做项目级自动识别
jenv 不改系统默认 JDK,只在当前 shell 或项目目录生效,进老项目自动切 JDK 8,进新项目自动切 JDK 17,IDE 和终端都认。
- macOS 安装:
brew install jenv - 把已装的 JDK 加入管理(路径要准确):
jenv add /Library/Java/JavaVirtualMachines/zulu-11.jdk/Contents/Home
jenv add /Library/Java/JavaVirtualMachines/zulu-17.jdk/Contents/Home - 设全局默认:
jenv global 17.0 - 进某个 Spring Boot 2.x 项目目录,执行:
jenv local 1.8 → 自动生成 .java-version 文件,下次 cd 进来就自动切回 JDK 8
执行 jenv versions 可看到带星号(*)的当前激活版本,一目了然。
Linux 服务器:用 update-alternatives 脚本化管理
适合无图形界面的生产或测试服务器,命令行驱动、可写进 CI 脚本、权限可控。
- 假设 JDK 已解压到 /usr/lib/jvm/:
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk8/bin/java 100
sudo update-alternatives --install /usr/bin/java java /usr/lib/jvm/jdk17/bin/java 200 - 交互式切换:
sudo update-alternatives --config java → 按编号选择 - 非交互式指定(适合自动化部署):
sudo update-alternatives --set java /usr/lib/jvm/jdk17/bin/java
它通过软链接统一调度,运维友好,不会影响其他服务的 Java 运行时。
VS Code:按项目单独配 JDK,不干扰全局
VS Code 的 Java 扩展不读系统 JAVA_HOME,而是靠 java.home 设置项。每个项目可独立指定 JDK,彻底隔离。
- 在项目根目录打开 VS Code,按下 Ctrl+Shift+P,输入并选择:
Java: Configure Java Runtime - 在右侧面板中为“Project SDK”选一个已安装的 JDK(比如 /usr/lib/jvm/jdk-17)
- VS Code 会自动生成或更新 .vscode/settings.json,内容类似:
"java.home": "/usr/lib/jvm/jdk-17"
这个配置只对当前项目生效,换个项目打开,JDK 自动恢复成它自己的设置,零冲突。
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











