快速修复Class.forName案例问题
我从Java那里得到了这个真正(愚蠢)的错误
Exception in thread "AWT-EventQueue-0" java.lang.NoClassDefFoundError: models/modelclass (wrong name: models/ModelClass)
所以我在命令行输入一个命令,我宁愿不输入类名的正确情况。 我想键入“modelclass”而不是“ModelClass”。
有办法解决这个问题吗? 为什么存在这种exception?!?
该错误的存在是因为标准Java类加载器对类名称区分大小写。
三种选择:
- 忽略标准Java约定并将所有类命名为小写(不推荐,如果您正在寻找第三方类,则不可能)。
- 使用Google的Reflections库查找类路径中的类,对给定的输入执行不区分大小写的匹配,并使用您在Class.forName()调用中从reflection中找到的类。
- 对#2进行迭代:编写自己的类加载器,对类进行不区分大小写的搜索并加载所需的类。
- Java 6类加载的速度有多快?
- 头脑风暴:奇怪的JPA问题,可能是classpath或jar版本问题?
- 带有来自Jar的多个XML文件的Spring ApplicationContext
- 如果不使用返回值,Class.forName()的用途是什么?
- URLClassLoader将Annotation加载为com.sun。$ Proxy $ 27
- 加载我自己的Xalan实现,其中旧的Xalan被加载到父类加载器
- CompletableFuture / ForkJoinPool设置类加载器
- 使用ClassLoader方法将类下的所有资源检索为输入流
- 为什么Class.getPackage为来自不同包的类返回相同的包?