前言:在使用IDEA,通过Maven项目构建工具构建项目时,经常会遇到“无法找到类(Class not found)”的错误,但是类本身没有问题,也成功在编译输出的文件中找到,会非常奇怪。另外在Maven项目中编写了测试类,运行程序经常会失败,经常需要跳过测试类的情况出现,因此通过查到资料,实践得出以下解决方案。
问题描述
运行程序报错,无法找到相关的类(Class not found)
但是通过查找发现存在该类
SDK设置和文件输出均正确
解决方案
方法1: 用Maven命令先clean后compile
清除target文件在重新编译项目,有时可能不成功,需要多次操作,较为麻烦,有用但繁琐,不推荐
方法2: 勾选 Store generated project files externally
(在外部存储生成的项目文件)
推荐该方案,建议勾选
勾选后,不会在.idea目录下生成.iml文件和library文件,选中后有利于通过版本控制去共享
方法3: 勾选 Delegate IDE build/run actions to Maven
(将编译托管给maven)
不推荐该方案,建议取消勾选
勾选后,项目的测试运行极慢,每次都会通过Maven进行clean和package等操作。
解决结果
我的解决方案是取消勾选 Delegate IDE build/run actions to Maven
,并勾选 Store generated project files externally
,最终运行结果如下,成功运行该程序
测试过如果不勾选 Store generated project files externally
只取消勾选 Delegate IDE build/run actions to Maven
,同样可以运行该程序