java - 神奇的NoClassDefFoundError异常

查看:118
本文介绍了java - 神奇的NoClassDefFoundError异常的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

问 题

今天学习使用beanutils写了一段代码
@Test

 public void test() throwsIllegalAccessException,InvocationTargetException   {
 Person one =new Person();
 one.setId("2");
 System.out.println(one);
 BeanUtils.setProperty(one, "id", "3");
 System.out.println(one);
}

遇到了下面的异常:
java.lang.NoClassDefFoundError:org/apache/commons/collections/FastHashMap
原因是缺少一个叫commons-collections的包;
后来我将这个包导进去还是报错,
后来才发现是版本不兼容的问题;
于是我就把这仨个包弄进去
commons-collections-3.2.2.jar
commons-beanutils-1.9.3.jar
commons-logging-1.2.jar
神奇的事情发生了 没有报错了;
于是我就认为是版本的问题;但是我错了
我把commons-collections-3.2.2.jar删了竟然没事,还是能正常运行,这是为什么;于是我更极端把commons-collections4-4.1.jar弄进去(前期弄这个就是会报错)竟然也没事;
这是为什么?
于是我决定重新写一次;
于是乎我重新写了一个测试类
@Test

 public void test() throws IllegalAccessException, InvocationTargetException {
 Person one =new Person();
 one.setId("2");
 System.out.println(one);
 BeanUtils.setProperty(one, "id", "3");
 System.out.println(one);
}

还是没有报错?这是为什么?
我猜测是IDE的缓存问题!
那么我决定重新打开一个IDE重新写一个,神奇的事又发生了
我只把commons-beanutils-1.9.3.jar commons-logging-1.2.jar两个包导进去还是没有报错
这是为什么?

解决方案

嘿,你或许可以试试gradle或者maven这样的项目管理工具。

这篇关于java - 神奇的NoClassDefFoundError异常的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
相关文章
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆