【发布时间】:2016-05-02 13:49:06
【问题描述】:
我正在动态加载 jar 文件,在加载 jar 时,我将所有 Class 对象保存到 List。加载完所有 jar 之后,我执行下面的代码,它会抛出一个指向 Class.forName(clazz.getName()) 的 java.lang.ClassNotFoundException。我不确定为什么 java 无法找到该类,即使它已明确加载,请有人解释一下。
Class<?> clazz = listOfClasses.get(0);
try {
Class.forName(clazz.getName());
}
catch(Exception e) {
e.printStackTrace();
}
【问题讨论】:
-
你是如何加载 Jar 的?绝对类在不同的类加载器中。你可以在调用“forName”之前做这样的事情:
Thread.currentThread().setContextClassLoader(clazz.getClassloader())或者,你可以创建一个要设置的复合类加载器,就像这里的那个:java2s.com/Code/Java/Language-Basics/…
标签: java jar classloader