猿问

神奇的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两个包导进去还是没有报错

这是为什么?


萧十郎
浏览 566回答 1
1回答

青春有我

嘿,你或许可以试试gradle或者maven这样的项目管理工具。
随时随地看视频慕课网APP

相关分类

Java
我要回答