临时切换JDK版本只需两步:先设置JAVA_HOME指向目标JDK根目录,再将%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux)置于PATH最前端,仅当前终端生效,关闭即还原。

临时切换 JDK 版本,就是让当前终端会话使用指定 JDK,不改动系统全局设置,关掉窗口就自动还原。核心只有两步:正确设好 JAVA_HOME,再把它的 bin 目录放在 PATH 最前面。
Windows(CMD)临时切换
以切换到 C:\jdk-17.0.7 为例:
- 确认该路径下有
bin\java.exe - 依次执行(顺序不能错):
set JAVA_HOME=C:\jdk-17.0.7
set PATH=%JAVA_HOME%\bin;%PATH% - 验证:
echo %JAVA_HOME%
java -version
应分别显示路径和 17.x 版本号
⚠️ 注意:只在当前 CMD 窗口生效;若只改 JAVA_HOME 不调换 PATH 顺序,java 命令仍可能调用旧版本。
macOS / Linux(Bash 或 Zsh)临时切换
假设 JDK 17 在 /opt/jdk-17.0.7:
- 运行:
export JAVA_HOME=/opt/jdk-17.0.7
export PATH=$JAVA_HOME/bin:$PATH - 验证:
echo $JAVA_HOME
java -version - 想一行搞定,可写:
export JAVA_HOME=/opt/jdk-17.0.7 && export PATH=$JAVA_HOME/bin:$PATH
绕过环境变量直接运行(最轻量)
如果只是跑一个 JAR 包,完全不用动任何变量:
- Windows:
"C:\jdk-17.0.7\bin\java.exe" -jar app.jar - macOS/Linux:
/opt/jdk-17.0.7/bin/java -jar app.jar
✅ 这种方式不依赖 JAVA_HOME 或 PATH,适合脚本、一键启动或快速验证。
常见失效原因排查
如果 java -version 没变,检查以下几点:
-
JAVA_HOME是否指向 JDK 根目录(不是bin子目录) -
PATH中是否真把%JAVA_HOME%\bin(Windows)或$JAVA_HOME/bin(macOS/Linux)放在了最前面 - 路径含空格时,Windows 下必须加英文引号,如:
set JAVA_HOME="C:\Program Files\Java\jdk-17" - 别在 PowerShell 里用 CMD 的
set语法;PowerShell 应用:$env:JAVA_HOME="..."; $env:PATH="$env:JAVA_HOME\bin;$env:PATH"
Java免费学习笔记:立即使用
解锁 Java 大师之旅:从入门到精通的终极指南











