eclipse java项目下新建文件夹,导入json 相关的jar包,程序编译没报错,运行时报错无法加载,代码截图:
在代码运行到24行报错,报错信息如下:
Exception in thread "main" java.lang.NoClassDefFoundError: org/apache/commons/lang/exception/NestableRuntimeException
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClass(Unknown Source)
at java.security.SecureClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.defineClass(Unknown Source)
at java.net.URLClassLoader.access$100(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at com.lyq.base.MyUtil.convertBeanToString(MyUtil.java:24)
at com.lyq.base.MyUtil.main(MyUtil.java:35)
Caused by: java.lang.ClassNotFoundException: org.apache.commons.lang.exception.NestableRuntimeException
at java.net.URLClassLoader$1.run(Unknown Source)
at java.net.URLClassLoader$1.run(Unknown Source)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
at java.lang.ClassLoader.loadClass(Unknown Source)
... 13 more
麻烦高手帮忙看看怎么解决,是导入jar方法有问题么?
这个问题的根本原因是commons-lang jar包不兼容导致的,你现在用的是commons-lang3-3.1版本
可以看到3.1版本里面根本没有NestableRuntimeException这个类,你再看看2.6版本的API:
很明显2.6的有,所以使用2.6版本就不会有这个错误了,建议你以后遇到这种问题的时候先把jar包打开,刨根问底就会找到问题的答案了。
多谢!!
java导入JSON的话去maven中央仓库搜一下json然后下载那个org.json就行了,如果不出意外的话不需要导入其他一堆乱七八糟的东西,地址给你:http://search.maven.org/remotecontent?filepath=org/json/json/20160212/json-20160212.jar
明显就是几个jar不是一家人,都不认彼此。