在IDEA上的Java项目本来是好好的,不管是编译还是启动都没问题。现在是不知道什么原因,竟然全部报错了,不管打开哪个类文件都报错。
首先排除:
- settings文件
- maven导入
- jdk版本
在开篇中我们说到了,项目本来是好好的,所以以上问题应该是没问题的。不过这也不是绝对的,为什么这么说呢?因为我的idea是加载了多个项目,启动不同项目的时候启动了多个idea窗口,并没有把这些不同的项目放在同一个idea启动窗口中作为不同模块来打开。这不同的项目的jdk版本是不一样的,我修改过他们的jdk版本,包括模块本身的、项目的,以及项目编译的字节码文件。如图:
1. 项目模块
我们看到,模块中 源 和 依赖 的jdk版本是不一致的。这是我最终解决问题之后的样子。如此看来,它们两个不一致也不要紧的。
2. 项目
这两个地方,原先是 jdk15,如图也是解决问题之后的设置。
3. 构建、执行、部署
如图所示,是解决问题之后的设置。之前的 项目字节码版本 设置的是jdk15,按模块字节码版本中的 目标字节码版本也是15,但是设置之后自动变成了 1.8。
至于为什么会出现好好的项目就全部报错飘红了,这个原因自然是我们项目中的一些默认设置改动了,具体是什么呢?我们这里先不管它。推荐一篇文章:
这篇文章已经说的很好了。
出现项目前面报错的情况,很多时候不是settings和maven导入的问题,当然,如果你的项目是第一次导入或者第一次从Git上拉取下来是有这个可能的,这种情况就很简单了,在此不再赘述。本篇讨论的重点是:
好端端的项目,怎么就全部报错了呢?
常规的解决问题方案我们都尝试过了,看到上面推荐的这篇文章的 解决方案二,我们尝试之后,还是不行,然后又清理了缓存,最终解决了问题。
说一下我解决这个问题的思路:
- 检查settings设置
- 检查maven,清理、打包,或重新导入重启项目
- 修改项目各处的jdk版本,使之一致
- 清理缓存
- 删除 .idea文件夹,并清理缓存,重启项目
最终,成功地解决了问题。
结论:通过上面的 5可以解决问题。
正如推荐的这篇文章所说:
删除文件夹下的.idea文件夹和xxx.iml文件,然后重新打开就可以了。
***出错原因:***动了project Structure ——Modules中Sources下的make as的东西,即随意点了一个导致。
而xxx.iml和.idea文件的作用分别是:.iml是 intellij idea的工程配置文件,里面是当前project的一些配置信息,有包的存放位置;
.idea存放项目的配置信息,包括历史记录,版本控制信息等所有,只要删除这两个文件,重启,就可恢复默认;
然后是清理缓存:
文件——清理缓存
清理并重新启动。
不过这种方式导致了一个问题,我们上面也提到了,自动修改了字节码版本设置,以及项目结构中的设置,竟然给我设置成了jdk17.当然,这个17是我项目中的SDK本来就添加过的。
而且,这种方式导致的就是我项目正常启动,然后点击关闭的时候,项目貌似是关闭了(从idea上看,貌似是的,但是你的项目启动详情那个地方一直在转圈,显然是没有关闭掉的)。
上面红框的地方,在我项目关闭的时候一直在转圈。上图是我重新启动时候报错的图。报错原因是:
说白了就是端口冲突,也就是之前关闭项目的时候监听进程还是在运行状态,其实就是项目没有关闭。
这个问题怎么解决呢?
有两种思路:
1.关闭进程;
2.真正解决问题
上面的1,大家可以自行百度,或者参考我的这篇文章:
Java项目启动报错:Process exited with an error: 1 (Exit value: 1)
真正解决问题,我也不知道,我曾经尝试了一天的时间,也问了一些朋友,他们给出的方案都不行。
但是在这篇文章中,我们项目本来是好的,最终全面报错。在全面报错的时候我项目启动是没问题的,这个貌似是项目没有编译的缘故,但是我重新编译之后还是正常启动,就是项目钱不报错。
说明这个时候我们关闭项目是没问题的。只不过是因为我们删除了.idea文件夹和清理了缓存,最终我们标题中的问题解决了,但是出现了现在讨论的问题。
我们在说这个问题的解决思路的时候,我们给出了图片,也讲到了,通过上面这种方式导致的字节码版本问题,以及项目本身的jdk自动修改的问题。那么我们是还不是可以修改一下字节码版本方面,把我们现在遇到的这个问题解决呢?其实我们就改动了这几个jdk的地方,以及删除了文件夹和清理了缓存。后面这两个我们不能回到以前了,但是修改的jdk是可以的。
修改之后,发现还是不行,而且代码又全部报错了:
而且又出现了我上面说的问题,关闭项目时,项目一直转圈:
同时,我的控制台打印的日志,中文的一直报错。这个当然是编码问题,但是我修改了所有的编码,都解决不了这个问题。这个和我上面的那篇文章中遇到的问题一模一样。
就这样吧,等后续有方案了再说。
时间:2022年5月5日10:59:28
这个问题,终于解决了,可以参考我的这篇文章:
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/2689.html