0

简单地说,我有这个工作:

java -cp ".:bin:MyJar.jar" path.to.My.Main

但这在尝试加载动态编译的类时引发了异常:

java -jar MyJar.jar

失败是在

x = clazz.newInstance();

我得到一个“java.lang.NoClassDefFoundError:”的地方。我使用自定义类加载器加载了该类,因为该类是运行时编译的。发生异常的原因是因为 java 在尝试加载 clazz 中的导入时使用了单独的类加载器。这可以通过修改您的 ClassLoader extends URLClassLoader 来调用 super.loadClass(className, false); 来纠正。

4

1 回答 1

1

问题解决方案:

修改您的自定义类加载器以调用 super.loadClass()。即使堆栈跟踪可能不会明显通过您的类加载器。

于 2012-10-03T00:45:41.310 回答