汉化版IDEA更换JDK版本完全教程(超详细!)

 更新时间:2026年04月01日 08:41:45   作者:烛之武  
更换JDK版本是Java开发者在日常开发、项目迁移、兼容性适配、安全升级或构建环境统一过程中极为常见且关键的操作,这篇文章主要介绍了汉化版IDEA更换JDK版本的相关资料,需要的朋友可以参考下

前言

在 Java 开发中,我们经常需要根据项目需求切换不同的 JDK 版本(比如从 JDK8 升级到 JDK17,或降级到 JDK11)。对于使用汉化版 IntelliJ IDEA的小伙伴,本文全程采用中文菜单 / 选项描述,不改动任何非必要配置,手把手教你完成 JDK 切换,全程避坑!

一、场景 1:设置全局默认 JDK(所有新项目生效)

  1. 该方式会修改 IDEA 的配置,后续新建的项目都会默认使用这个 JDK 版本。

    步骤 1:打开 IDEA 全局设置

    • 若未打开任何项目:直接点击 IDEA 启动界面的「文件 → 新项目设置 → 新项目的结构」(2020 + 版本);

    • 若已打开项目:点击「文件 → 项目结构」。

    步骤 2:配置 SDK

    1. 在弹出的「项目结构」窗口左侧,选择「平台设置 → SDK」;

    2. 点击右上角「+」号,选择「从磁盘添加JDK...」;

    3. 在文件选择窗口中,找到你安装的目标 JDK 根目录(比如C:\jdk\jdk21),点击「确定」;

    4. 此时 IDEA 会自动识别 JDK 版本,确认后点击「应用」。

    5. 注意!,只有右侧「类路径」识别到多个清晰识别到多个核心包 / 依赖包,才算添加成功

    步骤 3:设置默认项目 SDK

    1. 在「项目结构」左侧选择「项目设置 → 项目」;

    2. 在右侧「SDK」选择刚刚添加的 JDK 版本;

    3. 在「语言级别」中选择对应版本(建议与 JDK 版本一致,比如 JDK17 选 17);

    4. 点击「确定」保存配置,全局默认 JDK 设置完成。

    步骤 4:修改模块 SDK(关键!避免编译报错)

    1. 左侧选择「模块」,选中你的项目模块;

    2. 切换到「依赖」标签页;

    3. 在「模块 SDK」下拉框中选择目标 JDK 版本;

    4. 点击「应用 → 确定」。

    步骤5:不同项目类型的额外配置

    更换 JDK 后是否需要修改配置文件,核心取决于你的项目类型,不同类型处理方式完全不同:

    场景 1:普通 Java 项目

    无需修改任何配置文件—— 仅需完成上述 IDEA 的 SDK 配置即可,JDK 版本会直接生效,编译、运行均以 IDEA 配置的版本为准。

    场景 2:Maven 项目(有 pom.xml 文件)

    这种情况必须同步修改 pom.xml(仅改 IDEA 会导致版本不一致报错):

    1. 在 IDEA 左侧项目面板中,找到根目录下的 pom.xml 文件并双击打开;

    2. 插入 / 修改以下配置,将版本号改为目标 JDK 版本(示例为 JDK17):

      1. 汉化版 IDEA 更换 JDK 核心是「添加 SDK → 配置项目 SDK → 配置模块 SDK」三步,三者缺一不可;

      2. 全局设置适合所有新项目,单个项目设置仅影响当前项目,全程无需改动其他配置;

    修改中间数字与目标JDK版本一致 版本为JDK21就改为21
     <maven.compiler.source>21</maven.compiler.source> 
     <maven.compiler.target>21</maven.compiler.target> 

    3.修改完成后,点击 IDEA 右侧「Maven」面板的「刷新」按钮(或右键项目 → Maven → 重新加载项目),让配置生效。

    二、验证 JDK 是否更换成功

    方法 1:通过 IDEA 界面验证

    1. 点击「文件 → 项目结构 → 项目」,查看「项目 SDK」是否为目标版本;

    2. 打开项目中的任意 Java 类,点击顶部「文件 → 项目结构 → 模块」,确认模块 SDK 一致。

    方法 2:通过代码验证(最直观)

    在项目中新建测试类,运行以下代码,输出的版本号即为当前使用的 JDK 版本:

     public class JdkVersionTest {
         public static void main(String[] args) {
             // 获取JDK版本
             String javaVersion = System.getProperty("java.version");
             // 获取JDK安装路径
             String javaHome = System.getProperty("java.home");
             System.out.println("当前JDK版本:" + javaVersion);
             System.out.println("当前JDK路径:" + javaHome);
         }
     }

    示例输出(JDK17):

     当前JDK版本:17.0.9
     当前JDK路径:D:\Java\jdk-17.0.9\jre

    三、常见问题与解决方案

    问题 1:添加 JDK 时提示「所选目录不是有效的 JDK 主目录」

    • 原因:选择的路径不是 JDK 根目录(比如选到了jdk-17.0.9\bin);

    • 解决方案:重新选择 JDK 的根目录(包含binlibjre等文件夹的目录)。

    问题 2:项目编译报错「java: 不支持发行版本 XX」

    • 原因:项目 SDK、模块 SDK、语言级别三者版本不一致;

    • 解决方案:统一三者为目标 JDK 版本(比如全部改为 17)。

四、总结

到此这篇关于汉化版IDEA更换JDK版本的文章就介绍到这了,更多相关汉化版IDEA更换JDK版本内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Java数字转换工具类NumberUtil的使用

    Java数字转换工具类NumberUtil的使用

    NumberUtil是一个功能强大的Java工具类,用于处理数字的各种操作,包括数值运算、格式化、随机数生成和数值判断,下面就来介绍一下NumberUtil的具体使用,感兴趣的可以了解一下
    2025-02-02
  • SpringBoot中使用Redis的完整实例

    SpringBoot中使用Redis的完整实例

    这篇文章主要给大家介绍了关于SpringBoot中使用Redis的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-09-09
  • spring springMVC中常用注解解析

    spring springMVC中常用注解解析

    这篇文章主要介绍了spring springMVC中常用注解,本文给大家介绍的非常详细,需要的朋友可以参考下
    2018-05-05
  • Spring 注解编程模型相关知识详解

    Spring 注解编程模型相关知识详解

    这篇文章主要介绍了Spring 注解编程模型相关知识详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-09-09
  • struts1之ActionServlet详解_动力节点Java学院整理

    struts1之ActionServlet详解_动力节点Java学院整理

    这篇文章主要介绍了struts1之ActionServlet详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-09-09
  • Java AQS中ReentrantReadWriteLock读写锁的使用

    Java AQS中ReentrantReadWriteLock读写锁的使用

    ReentrantReadWriteLock称为读写锁,它提供一个读锁,支持多个线程共享同一把锁。这篇文章主要讲解一下ReentrantReadWriteLock的使用和应用场景,感兴趣的可以了解一下
    2023-02-02
  • java自定义序列化的具体使用

    java自定义序列化的具体使用

    本文主要介绍了java自定义序列化的具体使用,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • Java实现简单小画板

    Java实现简单小画板

    这篇文章主要为大家详细介绍了Java实现简单小画板,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-06-06
  • 一篇文章弄懂Mybatis中#和$的区别

    一篇文章弄懂Mybatis中#和$的区别

    mybatis为我们提供了两种支持动态sql的语法#{}以及${},两者都是动态的向sql语句中传入需要的参数,下面这篇文章主要给大家介绍了如何通过一篇文章弄懂Mybatis中#和$区别的相关资料,需要的朋友可以参考下
    2021-12-12
  • Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    Spring Boot中KafkaListener的介绍、原理和使用方法案例详解

    本文介绍了Spring Boot中 @KafkaListener 注解的介绍、原理和使用方法,通过本文的介绍,我们希望读者能够更好地理解Spring Boot中 @KafkaListener 注解的使用方法,并在项目中更加灵活地应用
    2023-09-09

最新评论