Java多版本JDK切换全攻略
时间:2026-01-03 12:27:44 131浏览 收藏
一分耕耘,一分收获!既然都打开这篇《Java多版本JDK切换方法详解》,就坚持看下去,学下去吧!本文主要会给大家讲到等等知识点,如果大家对本文有好的建议或者看到有不足之处,非常欢迎大家积极提出!在后续文章我会继续更新文章相关的内容,希望对大家都有所帮助!
推荐使用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的项目,互不干扰。
- 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切换全攻略》的详细内容,更多关于的资料请关注golang学习网公众号!
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
501 收藏
-
360 收藏
-
277 收藏
-
322 收藏
-
149 收藏
-
383 收藏
-
157 收藏
-
423 收藏
-
252 收藏
-
418 收藏
-
295 收藏
-
470 收藏
-
364 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 543次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 516次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 500次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 485次学习