在Java开发过程中,我们常常需要在同一台机器上维护多个JDK版本,例如老项目使用JDK 8,而新服务要求JDK 17。通过命令行工具管理JDK版本,可以快速完成查看、切换与配置,不必反复修改系统环境变量。

查看系统中已安装的JDK
大多数操作系统都可以通过命令行列出当前安装的JDK。在macOS或Linux上,如果你使用SDKMAN,可以直接运行下面命令:
# 列出所有已安装的JDK版本 sdk list java # 查看当前正在使用的JDK路径 which java java -version
在Windows中,可以使用where命令定位java可执行文件:
where java java -version
使用jenv管理多个JDK版本
jenv是一个用Shell编写的命令行工具,能够帮助我们在不同目录或全局范围内切换JDK版本。首先需要将JDK加入到jenv中:
# 添加系统已安装的JDK到jenv jenv add /Library/Java/JavaVirtualMachines/jdk1.8.0_301.jdk/Contents/Home jenv add /Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home # 查看jenv可管理的版本 jenv versions
设置全局与局部版本
全局版本对当前用户所有终端生效,局部版本只对指定目录及其子目录生效:
# 设置全局JDK版本 jenv global 1.8.0.301 # 进入项目目录后设置局部版本 cd ~/projects/new-service jenv local 17.0
执行jenv local后,目录下会生成.java-version文件,记录该项目使用的JDK版本。
不使用第三方工具时的手动切换
如果不想安装jenv,也可以直接在命令行临时修改PATH变量:
# 临时使用JDK 17 export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk-17.jdk/Contents/Home export PATH=$JAVA_HOME/bin:$PATH java -version
这种方式仅在当前终端会话有效,关闭后恢复原有配置。
常见问题与建议
- 切换版本后记得执行
java -version确认生效。 - IDE中的JDK配置独立于命令行,需要单独设定。
- 使用jenv时若命令未生效,检查是否执行了
jenv enable-plugin export。
合理运用命令行工具管理JDK版本,能显著降低多项目并行开发时的环境维护成本。
| 工具 | 适用系统 | 特点 |
|---|---|---|
| jenv | macOS/Linux | 支持全局与局部版本,轻量 |
| SDKMAN | macOS/Linux | 可安装并管理多款JDK发行版 |
| 手动改PATH | 全平台 | 无需安装,适合临时切换 |