【发布时间】:2015-09-28 21:42:33
【问题描述】:
我想动态加载一个类列表。 例如,我在目录 /hereAreMyClasses 中有: class1.class 类2.类 class3.class
使用 ClassLoader 遍历这些类并加载它们就可以了。
现在的问题是,其中一个类(比如说,class2)从另一个位置/另一个包导入了一些类。
import other.package.someClass;
public class class2 {
//stuff
}
这在编译时工作正常,但是当我运行程序时,当我调用 someClass 时,我得到一个 NoClassDefFoundError
Class<?> clazz = clazzLoader.loadClass("class2");
如何让 ClassLoader 也加载所需的导入类?
编辑
问题解决了,多亏了我注意到的答案,我在调用我的程序时缺少类路径定义。
【问题讨论】:
-
import语句只是用于范围界定的编译时概念。它对程序没有运行时影响。 -
import 不会做任何事情,除了节省您的输入。人们经常将其与类加载混淆。那不是它正在做的事情。
标签: java classloader packages