IDEA编译报错:Error:java:无效的源发行版:17的解决办法
作者:全栈小哥 发布时间:2023-08-25 10:38:06
出现这种错误的原因可能是:
1.本机默认使用(编译)的jdk与该项目所使用的jdk版本不同。
2.jdk版本不适用于这个Idea,很典型的一个例子就是使用的Idea是2020的,而你用到的jdk是17,jdk17是2021年推出的,所以你只能去安装新版本的idea。
如果报错Error:Auto build failure: Cannot determine path to 'tools.jar' library for 17 (/Library/Java/JavaVirtualMachines/jdk-17.0.4.1.jdk/Contents/Home)也是这个原因导致的。
该项目用的是什么版本的jdk请打开pom.xml查看:
如何解决:
1.修改项目使用的jdk版本,但是如果本来使用的是17,你降级为8,就可能导致某些代码不能实现。 (具体内容请看下面⬇️)
2.安装新版本的Idea从而可以使用新的jdk。(我的另一篇博客说明如何安装IDEA2022,mac版本PoJie)
步骤如下:
1. Preferences->
按如下路径找到java compiler
以下这两处改成8(我的jdk是1.8,如果你的是18,就改成18)
关于怎么知道这个项目用的jdk是多少,下一步可以看到
点击OK
下一步 ,file里找到project structure
如下图,可以看到我使用的jdk版本是1.8
此处对应选择8
接下来在Modules里将红色框里改成8(截图中我还没改,这是我报错的原因)
点击OK,重新编译就OK啦。
ps:当你重导maven项目的之后,再编译可能还会遇到这个问题,按照我上面的办法修改即可,当然你也可以直接去修改pom.xml配置文件,这样子就不会再出现版本问题了。
2.修改pom.xml文件的配置信息
根据报错的信息提供的内容,它说的是某个版本太高需要修改。
3.总结
之前我创建springboot项目的时候还没有爆过这个错误,但是最近我新创建springboot项目时,给我爆了这么一个错误。我找了挺久发现没有详细的解决方法,然后我对比了以前创建的没有爆过错的pom文件,发现上图的两个地方不一样,然后我修改之后就可以成功运行了。然后我回想了一下出现这个问题错误的原因是在哪里,我从刚开始的创建项目开始一步步的观察,最后发现一个地方,问题出现的原因就是在这里。如下图所示:
来源:https://blog.csdn.net/lq5673575/article/details/128421483


猜你喜欢
- 先上结论RPC请求的效率是HTTP请求的1.6倍左右,性能明显比HTTP请求要高很多。原因分析RESTful是基于HTTP协议进行交互的,H
- 简单的日历实现,只是显示了每一个月,没有显示当天和记事这些功能主要是计算月初是周几,月末是周几,然后相应的显示上一月多少天和下一月多少天。先
- 生成文字图片:/// <summary> /// 生成文字图片 /// &l
- MyBatis框架提供了二级缓存接口,我们只需要实现它再开启配置就可以使用了。特别注意,我们要解决缓存穿透、缓存穿透和缓存雪崩的问题,同时也
- spring-task定时任务动态配置修改执行时间因项目需要,几个定时任务需要人为动态设置执行时间,于是乎吧,就查阅相关资料,是可以动态设置
- 前言使用递归循环开发评论回复功能,适用于大部分的简单单体应用评论功能或许是大多数的单体应用之中会用到的功能,我们会在自己所开发的项目之中进行
- Java类库及其组织结构(Java API)Java 官方为开发者提供了很多功能强大的类,这些类被分别放在各个包中,随JDK一起发布,称为J
- 事件:定义了事件成员的类允许通知其他其他对象发生了特定的事情。具体的说,定义了事件成员的类能提供以下功能1.方法能登记它对事件的关注2.方法
- public class FileAccess{//储存所有文件夹名private ArrayList dirs;public FileAc
- 玩安卓的人都知道adb,玩adb的人都知道install和uninstall,但是为什么adb shell pm install packa
- 前言不积跬步无以至千里,不积小流,无以成江海在公司一般来说,都只会接触一些CRUD的业务,很多时候可能你想设计很多的代码结构,但是时间不允许
- Quick Start在SpringBoot中使用log4j2日志框架,只需三步:引入依赖配置log文件获取Logger实例并输出日志引入依
- servlet实现文件上传,预览,下载和删除,供大家参考,具体内容如下一、准备工作:1.1 文件上传插件:uploadify;1.2 文件上
- 今天看到,java的NIO里面的SelectionKey,处理完key后,调用keyIterator.remove(); 对Iterator
- 接口(interface)和抽象类(abstract class)是支持抽象类定义的两种机制。接口是公开的,不能有私有的方法或变量,接口中的
- 本文实例讲述了Android编程之ICS式下拉菜单PopupWindow实现方法。分享给大家供大家参考,具体如下:运行效果截图如下:右边这个
- 需要装一个插件:File - Settings- Plugins - 搜索gson 安装GsonFromat;如下两张图安装完成后 ,新建一
- 我们都知道, Android EditText输入框,并没有监听用户输入完成的功能,需要我们自己实现。 下面是实现的方法,仅供参考:Edit
- 计数排序是非比较的排序算法,用辅助数组对数组中出现的数字计数,元素转下标,下标转元素计数排序优缺点优点:快缺点:数据范围很大,比较稀疏,会导
- 这篇文章主要介绍了Springboot整合MybatisPlus的实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定