java获取类加载器异常,java.lang.NoClassDefFoundError:$1异常,关于开发是的类加载问题...

开发时一次宝贵的错误经历

开发环境 tomcat6.0 jdk 1.6 软件 Myeclipse10

调试接口时出现的问题:同事给的jar包使用时报错,java.lang.NoClassDefFoundError:onegis$1,显而易见是一个类加载器加载问题,之前自己写的获取包下所有的类文件也会出现一个内部类,一定是加载所有的类之后用类加载器加载报的错(之前加载springMVC注解的时候也有过,也许是jdk版本等开发环境,所以后来就变成加载指定包下的注解了)

这个问题是因为不同开发环境获取包下所有的类,有的版本api会将内部类(匿名等等)一并获取,这时候没有报错,但是用类加载器加载之后,就会抛出java.lang.NoClassDefFoundError:onegis$1

同事的解决方案 : 干掉所有内部类

但是就在同事干完内部类的时候还是抛出java.lang.NoClassDefFoundError:onegis$1,反编译jar包并没有问题,没有出现class 1{ }的字样,找了好久最后手动替换tomcat里项目的jar包,程序跑通了。

出现问题的原因 : 1.api加载类要在不同开发环境(各种jdk)下测试

2类加载器写的时候一定要慎重 3 自己的问题,别人已经处理好了问题,剩下的还报之前的错误,那就要想通报错的东西在哪里用到了,比如jar包是在tomcat中用的,所以要去tomcat中去看一看

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值