迷之报错 —— Java .lang.NoClassDefFoundError

2017-06-19 17:07:50 +08:00
 Antidictator

同步别人的代码下来之后就一直报这个错误。代码应该是没有问题的,也不缺 jar 包之类的。 最后 clean and rebuild 了 n 遍之后竟然神奇的好了!!!然后重启电脑后又不行了。

Publish 的时候会报 class 类找不到错误,有时候报被占用错误(就算是刚开机也有这种情况)。

http://i.imgur.com/3Eyslim.png

http://i.imgur.com/9z8WRuF.png

http://i.imgur.com/YifXSWK.png

3560 次点击
所在节点    Java
14 条回复
Antidictator
2017-06-19 17:07:53 +08:00




Antidictator
2017-06-19 17:15:10 +08:00
btw,新换了工作空间,或者换 ide,换成 sts 也是不行的。
sorra
2017-06-19 17:21:18 +08:00
通常是由于 static 初始化失败。这个下面一般都有个 Caused by,请继续贴出来
errorlife
2017-06-19 17:29:49 +08:00
@sorra 1800 错误,我用这个号回复你。

```
Caused by: java.lang.ClassNotFoundException: com.xxx.xxx.xxx.SecurityBillService
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1891)
at org.apache.catalina.loader.WebappClassLoaderBase.loadClass(WebappClassLoaderBase.java:1734)
... 38 more
```
表示看不出来个 12345,还是功力不够。麻烦看看谢谢了
teddybun
2017-06-19 17:42:24 +08:00
是不是这个类没配置成 src ?
LeeSeoung
2017-06-19 17:43:49 +08:00
项目里有文件冲突,或者导错包。之前遇到过类似的问题是上面两个原因。
zacard
2017-06-19 17:58:31 +08:00
mvn dependency:tree -Dverbose
看看是否有依赖问题
Ouyangan
2017-06-19 18:40:22 +08:00
具体项目中遇到这种情况不太好分析.
有时候会遇到这种错误 , 第一步会 mvn clean install ,确认 target 中有有没有这个 class 文件.
lonenol
2017-06-19 18:55:43 +08:00
感觉是包冲突了,加载了没有这个 class 的一个同名的包
EmdeBoas
2017-06-19 19:50:14 +08:00
以前用 ZooKeeper 的时候也有过明明导了 jar 包却提示找不到,后面发现竟然是版本原因......
1120101929
2017-06-19 21:22:40 +08:00
资源管理器->磁盘,第三列看下哪个进程在占用文件。
看 build 目录下有没有这个 class 文件;看发布到 tomcat 中的 WEB-INF 目录下有没有这个 class 文件。
Antidictator
2017-06-20 09:04:42 +08:00
@fshuqing 没配置成 src 是什么意思呢?



@zacard 旧项目不是用 maven 管理呢


@Ouyangan
@1120101929 我亲眼看到那个 class 文件存在然后一下子就自动消失了。。


@lonenol 没有同名包的哦,同名的类名本身就会报错吧。


@EmdeBoas 指 JDK 吗?
teddybun
2017-06-20 09:54:17 +08:00
尝试清理下 tomcat 目录,或者配置个新的 tomcat,有时候诡异的现象不好说,只能现场调试
xuqd
2017-06-20 10:11:48 +08:00
曾经遇到过这个错的原因是
是 class 文件中的包位置与 class 实际位置不符合
用了自己开发的打包工具导致的,仅供参考

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/369592

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX