idea类找不到问题Caused by: java.lang.NoClassDefFoundError

原创 2020-04-15 17:02 阅读(3648)次

我的项目A引用另一个名叫pip-data-model-solr.jar包,这个包是我们的实体module,我改过这个module里的代码,重新打包pip-data-model-solr.jar后,项目A clean install后就启动不了,我是用idea启动的。报如下错:

Caused by: java.lang.NoClassDefFoundError: cn/com/datu/data/model/solr/entity/po/PersonDoc
at java.lang.Class.getDeclaredMethods0(Native Method)
at java.lang.Class.privateGetDeclaredMethods(Class.java:2701)
at java.lang.Class.getDeclaredMethods(Class.java:1975)
at org.springframework.util.ReflectionUtils.getDeclaredMethods(ReflectionUtils.java:641)
... 47 common frames omitted
Caused by: java.lang.ClassNotFoundException: cn.com.datu.data.model.solr.entity.po.PersonDoc
at java.net.URLClassLoader.findClass(URLClassLoader.java:382)
at java.lang.ClassLoader.loadClass(ClassLoader.java:424)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:349)
at java.lang.ClassLoader.loadClass(ClassLoader.java:357)
... 51 common frames omitted

看了一下项目A install后的jar中,也把pip-data-model-solr.jar打进去了,


cn.com.datu.data.model.solr.entity.po.PersonDoc类也在里面,也就是说打包是没问题,就是用idea启动spring boot项目A报类找不到。看了下项目A的代码,的确报错了,代码识别不了cn/com/datu/data/model/solr/entity/po/PersonDoc类

在idea的External Libraries包列表中也确实找不到pip-data-model-solr.jar包,所以问题的解决办法就是想办法让项目A里依赖包pip-data-model-solr.jar重新出现External Libraries包列表中就可以了。

解决办法:

修改项目pom.xml里引用

<dependency>
    <groupId>cn.com.datu</groupId>
    <artifactId>pip-data-model-solr</artifactId>
    <version>${project.parent.version}</version>
</dependency>

将pip-data-model-solr输入一个错误名,例如pip-data-model-solrrrr,保存,然后再把它改成正确的
名字pip-data-model-solr目的就是让idea把本地下好包引进External Libraries包列表中