V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
Antidictator
V2EX  ›  Java

迷之报错 —— Java .lang.NoClassDefFoundError

  •  
  •   Antidictator · 2017-06-19 17:07:50 +08:00 · 3706 次点击
    这是一个创建于 2698 天前的主题,其中的信息可能已经有所发展或是发生改变。

    同步别人的代码下来之后就一直报这个错误。代码应该是没有问题的,也不缺 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

    第 1 条附言  ·  2017-06-20 10:19:03 +08:00
    真的是。。。无力吐槽。。。电脑在公司域下面,然后昨天推送了卡巴斯基把我的 class 类给清除了。
    我是让别人给我发 class 文件在 QQ 目录都被清理了才发现的。真的是。。。好想爆粗。

    谢谢各位大佬,送上感谢。
    @sorra @fshuqing @LeeSeoung @zacard @Ouyangan @lonenol @EmdeBoas @1120101929 @xuqd
    14 条回复    2017-06-20 10:11:48 +08:00
    Antidictator
        1
    Antidictator  
    OP
       2017-06-19 17:07:53 +08:00




    Antidictator
        2
    Antidictator  
    OP
       2017-06-19 17:15:10 +08:00
    btw,新换了工作空间,或者换 ide,换成 sts 也是不行的。
    sorra
        3
    sorra  
       2017-06-19 17:21:18 +08:00   ❤️ 2
    通常是由于 static 初始化失败。这个下面一般都有个 Caused by,请继续贴出来
    errorlife
        4
    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
        5
    teddybun  
       2017-06-19 17:42:24 +08:00   ❤️ 1
    是不是这个类没配置成 src ?
    LeeSeoung
        6
    LeeSeoung  
       2017-06-19 17:43:49 +08:00   ❤️ 1
    项目里有文件冲突,或者导错包。之前遇到过类似的问题是上面两个原因。
    zacard
        7
    zacard  
       2017-06-19 17:58:31 +08:00   ❤️ 1
    mvn dependency:tree -Dverbose
    看看是否有依赖问题
    Ouyangan
        8
    Ouyangan  
       2017-06-19 18:40:22 +08:00   ❤️ 1
    具体项目中遇到这种情况不太好分析.
    有时候会遇到这种错误 , 第一步会 mvn clean install ,确认 target 中有有没有这个 class 文件.
    lonenol
        9
    lonenol  
       2017-06-19 18:55:43 +08:00   ❤️ 1
    感觉是包冲突了,加载了没有这个 class 的一个同名的包
    EmdeBoas
        10
    EmdeBoas  
       2017-06-19 19:50:14 +08:00   ❤️ 1
    以前用 ZooKeeper 的时候也有过明明导了 jar 包却提示找不到,后面发现竟然是版本原因......
    1120101929
        11
    1120101929  
       2017-06-19 21:22:40 +08:00   ❤️ 1
    资源管理器->磁盘,第三列看下哪个进程在占用文件。
    看 build 目录下有没有这个 class 文件;看发布到 tomcat 中的 WEB-INF 目录下有没有这个 class 文件。
    Antidictator
        12
    Antidictator  
    OP
       2017-06-20 09:04:42 +08:00
    @fshuqing 没配置成 src 是什么意思呢?



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


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


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


    @EmdeBoas 指 JDK 吗?
    teddybun
        13
    teddybun  
       2017-06-20 09:54:17 +08:00   ❤️ 1
    尝试清理下 tomcat 目录,或者配置个新的 tomcat,有时候诡异的现象不好说,只能现场调试
    xuqd
        14
    xuqd  
       2017-06-20 10:11:48 +08:00   ❤️ 1
    曾经遇到过这个错的原因是
    是 class 文件中的包位置与 class 实际位置不符合
    用了自己开发的打包工具导致的,仅供参考
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   5535 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 40ms · UTC 03:38 · PVG 11:38 · LAX 19:38 · JFK 22:38
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.