maven项目切换JDK踩坑指南分享

 更新时间:2024年11月30日 14:10:04   作者:杉莘  
文章介绍了如何在Windows系统中配置多版本JDK环境,并解决环境变量配置失效的问题,同时,还提供了在IntelliJ IDEA中配置不同项目JDK版本的方法

maven项目切换JDK踩坑指南

配置多版本的jdk环境(原jdk1.8,切换到jdk17)

环境变量配置失效;

下载jdk17,安装

配置环境变量JAVA_HOME、CLASS_PATH、Path

  • 修改原JAVA_HOME为JAVA8_HOME
  • 新增环境变量name=JAVA17_HOME, value=jdk17文件目录;
  • 新增环境变量name=JAVA_HOME, value=%JAVA17_HOME%(将JAVA_HOME指向Java17环境变量)
  • CLASS_PATH和Path中如果使用的是相对变量,如下图,则不用修改,如果不是使用的%JAVA_HOME%,需要修改为当前jdk版本安装目录(推荐使用相对目录);Path变量也一样,不再复述

  • 校验
  • 配置好了之后,命令行执行java -version,无任何版本信息输出;
  • 为了确保是否安装jdk失败,切换到jdk安装目录;输入cmd+enter键,再次执行java -version;正常显示jdk版本,说明安装成功;无输出则说明jdk安装出问题,需要卸载重装;

环境变量失效原因&&解决方案:

安装jdk版本之后,系统会生成如下图标红1两个地址,默认从该地址读取环境值;导致配置的环境变量失效;

  • 解决方案1:删除标红1;
  • 解决方案2:将2上移1的上面,越往上优先级越高,(但是我试了没用,不知道是系统读取环境变量值需要时间还是其他原因,感兴趣的小伙伴可以试着解决)

再次确认,命令行Java -version;如下,修改成功!

idea版本配置修改(单项目修改)

  • file ->projectStructrue
  • 三个标红sdk修改为指定版本;
  • 尤其是Modules,sources和dependencies都需修改;

  • file->settings->build,exe……->compiler

  • pom.xml
    <properties>
        <java.version>17</java.version>
    </properties>
……………………

 <plugin>
    <groupId>org.apache.maven.plugins</groupId>
    <artifactId>maven-compiler-plugin</artifactId>
    <version>3.10.1</version>
       <configuration>
       		<source>17</source>
       		<target>17</target>
       </configuration>
</plugin>

以上所有修改点都保持一致,就不会出问题了,漏掉地方可能会出现:

  • Java:警告 源发行版x需要目标发行版x
  • maven编译打包错误:maven-compiler-plugin ………… --RELEASE等莫名的错误

如果需要对所有项目修改,需要修改maven安装目录下的/conf/settings.xml文件

总结

这些仅为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 通过代码示例了解submit与execute的区别

    通过代码示例了解submit与execute的区别

    这篇文章主要介绍了通过代码示例了解submit与execute的区别,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-09-09
  • 如何导入spring源码到IDEA

    如何导入spring源码到IDEA

    这篇文章主要介绍了如何导入spring源码到IDEA,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-03-03
  • java在文件尾部追加内容的简单实例

    java在文件尾部追加内容的简单实例

    下面小编就为大家带来一篇java在文件尾部追加内容的简单实例。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2016-12-12
  • java对list<Object>进行手动分页实现

    java对list<Object>进行手动分页实现

    本文主要介绍了java对list<Object>进行手动分页实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • SpringBoot集成Eclipse Mosquitto的实现示例

    SpringBoot集成Eclipse Mosquitto的实现示例

    本文主要介绍了SpringBoot集成Eclipse Mosquitto的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2025-08-08
  • Java JConsole远程连接配置案例详解

    Java JConsole远程连接配置案例详解

    这篇文章主要介绍了Java JConsole远程连接配置案例详解,本篇文章通过简要的案例,讲解了该项技术的了解与使用,以下就是详细内容,需要的朋友可以参考下
    2021-08-08
  • Spring Boot命令行运行器的实现方法

    Spring Boot命令行运行器的实现方法

    这篇文章主要介绍了Spring Boot命令行运行器的实现方法,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-10-10
  • JAVA基本类型包装类 BigDecimal BigInteger 的使用

    JAVA基本类型包装类 BigDecimal BigInteger 的使用

    Java 中预定义了八种基本数据类型,包括:byte,int,long,double,float,boolean,char,short,接下来文章小编将向大家介绍其中几个类型的内容,需要的朋友可以参考下文章
    2021-09-09
  • Java使用Spire.PDF for Java轻松实现合并PDF

    Java使用Spire.PDF for Java轻松实现合并PDF

    在日常开发和办公中,PDF 文件的处理需求日益增长,其中合并 PDF无疑是常见且棘手的问题之一,本文将利用 Spire.PDF for Java 实现多种场景下的 PDF 合并需求,大家可以根据需要进行选择
    2025-09-09
  • Java内存模型详解

    Java内存模型详解

    JMM全称Java Memory Model, 中文翻译Java内存模型,一种符合内存模型规范的,屏蔽了各种硬件和操作系统的访问差异的,本详细介绍了Java内存模型,感兴趣的同学可以参考一下
    2023-04-04

最新评论