推荐使用SDKMAN!管理多版本JDK,它支持Linux/macOS一键安装、切换和卸载;手动配置JAVA_HOME+PATH通用性强;IDE内可独立设置项目JDK;构建工具(Maven/Gradle)可锁定编译版本,四者常组合使用。

Java开发中经常需要在多个JDK版本间切换,比如项目要求用JDK 8,而新模块想试用JDK 17的特性。关键不是装多个JDK,而是让系统和IDE清楚“此刻该用哪一个”。下面几种方法覆盖命令行、IDE和日常开发场景,选一种最顺手的就行。
用SDKMAN!管理多版本JDK(推荐给Linux/macOS用户)
SDKMAN!是轻量级的开发环境管理工具,专为Java生态设计,安装、切换、卸载都一条命令搞定。
- 安装SDKMAN!:终端执行 curl -s "https://get.sdkman.io" | bash,然后重启终端或运行 source "$HOME/.sdkman/bin/sdkman-init.sh"
- 查看可用JDK:输入 sdk list java,会列出OpenJDK、Amazon Corretto、Azul等各厂商的多个版本
- 安装指定版本:比如 sdk install java 17.0.2-tem(tem表示Temurin构建)
- 全局切换:用 sdk use java 11.0.20-amzn(当前终端生效)或 sdk default java 17.0.2-tem(永久设为默认)
手动配置JAVA_HOME + PATH(Windows/macOS/Linux通用)
不依赖第三方工具,适合对环境变量敏感或需精确控制的场景。核心是让JAVA_HOME指向目标JDK根目录,再把$JAVA_HOME/bin加到PATH最前面。
- 先确认各JDK安装路径,例如:
– macOS:/Library/Java/JavaVirtualMachines/jdk-8.jdk/Contents/Home
– Windows:C:\Program Files\Java\jdk-11.0.18
- macOS/Linux:在~/.zshrc或~/.bash_profile里添加
export JAVA_HOME=/path/to/your/jdk-17
export PATH=$JAVA_HOME/bin:$PATH
保存后运行 source ~/.zshrc
- Windows:系统属性 → 高级 → 环境变量 → 新建JAVA_HOME变量,再编辑PATH,把%JAVA_HOME%\bin移到最前
- 验证:终端输入 java -version 和 echo $JAVA_HOME(Windows用 echo %JAVA_HOME%)
IDE内单独设置项目JDK(IntelliJ IDEA / Eclipse)
IDE的JDK设置和系统无关,它只影响编译、运行和代码提示。一个IDE里可以同时打开JDK 8和JDK 17的项目,互不干扰。
立即学习“Java免费学习笔记(深入)”;
- IntelliJ IDEA:
– 项目层面:File → Project Structure → Project → Project SDK → 下拉选已配置的JDK
– 模块层面:Project Structure → Modules → Sources → Language level 和 SDK 可分别设置
– 运行配置:Run → Edit Configurations → 修改JRE选项
- Eclipse:
– Window → Preferences → Java → Installed JREs → Add… 添加JDK路径
– 右键项目 → Properties → Java Build Path → Libraries → Add Library → JRE System Library → Alternate JRE
构建工具里指定JDK(Maven/Gradle项目)
即使系统用JDK 17,也能让Maven强制用JDK 8编译,避免“Unsupported class file major version”错误。
- Maven:在pom.xml里配置和,如设为1.8;更彻底的做法是用toolchains.xml绑定特定JDK路径
- Gradle:在build.gradle中写:
java {
sourceCompatibility = JavaVersion.VERSION_11
targetCompatibility = JavaVersion.VERSION_11
}
或通过org.gradle.java.home参数指定JDK路径(命令行加 -Dorg.gradle.java.home=/path/to/jdk8)
基本上就这些。SDKMAN!适合喜欢命令行+自动化的开发者;手动配环境变量最透明可控;IDE设置解决多项目混用问题;构建工具配置则保障CI/CD一致性。实际用的时候,三者常组合使用——比如用SDKMAN!装JDK,IDE里选它,Maven里再锁死字节码版本。
以上就是Java里如何切换不同版本的JDK_多版本JDK切换方法解析的详细内容,更多请关注php中文网其它相关文章!