快速修复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进行迭代:编写自己的类加载器,对类进行不区分大小写的搜索并加载所需的类。
- 如何使jvm加载我的java.lang.String而不是rt.jar中的那个
- 由于ClassLoader问题导致ClassCastException的解决方案
- Java / JSF / Tomcat / Spring – Proxy-Object与原始对象有不同的方法
- 使用Reflections google库的unit testing仅在Maven执行时失败
- 修改执行Jar文件
- ClassLoader.getResources在Weblogic / Spring应用程序上返回一个空的Enumeration
- Java 6类加载的速度有多快?
- 为什么JVM不从数据库加载类?
- Java EE和Java SE类加载