在用到 ClassLoader加载资源的时候,经常会出现以下错误:
Exception in thread "main" java.lang.NoClassDefFoundError: com/tools/Result
at java.lang.Class.getDeclaredConstructors0(Native Method)
at java.lang.Class.privateGetDeclaredConstructors(Class.java:2328)
at java.lang.Class.getConstructor0(Class.java:2640)
at java.lang.Class.newInstance0(Class.java:321)
at java.lang.Class.newInstance(Class.java:303)
at com.npower.dm.tools.backup.Startup.main(Startup.java:78)
解决方法:
不要在同包内加无用的类
打包的时候,只要打Startup.java即可,不用打其它的类,
ClassLoader会自己去找,找到后加载
如果打包了,ClassLoader也加载了,那就重复了,所以就出现上面的情况.
自己发现说的可能不太清楚,发现描述一个事件也是很有学问的,以后再加强!
本文介绍了解决使用ClassLoader加载资源时出现NoClassDefFoundError的方法,建议避免在相同包内添加无用类,并说明了正确的打包方式,以确保ClassLoader能够正确地查找并加载所需的类。
18万+

被折叠的 条评论
为什么被折叠?



