我们有一个servlet项目,它包含(在许多其他类中)我们公开给用户的界面。ClassNotFoundException在动态加载类文件时抛出
用户可以编译他们自己的实现提供的接口的类(以.class文件的形式),并将它们放置在我们的项目知道的文件夹中。当servlet启动时,它使用URLClassLoader加载该文件夹中的所有.class文件。 (所以用户可以挂钩到某些事件中。)
据我所知,类文件位于并正确加载,种。当加载用户的编译后的.class文件时,抛出了ClassNotFoundException异常,但它抱怨接口,它应该已经在类路径中。
Caused by: java.lang.ClassNotFoundException: com.company.project.OurInterface
at java.net.URLClassLoader$1.run(URLClassLoader.java:200)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:188)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at java.lang.ClassLoader.loadClass(ClassLoader.java:251)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:319)
当动态加载.class文件时,是否有原因找不到接口?
我几乎在我的问题中提到了将类路径类加载器“附加”到URLClassLoader的可能性,我只是对行话有点熟悉,但你的方法听起来似乎合理,我会给它一个机会让你知道。谢谢。 – 2010-11-01 21:52:20
就是这样。:) – 2010-11-01 21:53:24
这也帮了我很多 - 这让我有点生气。干杯:) x。 – Danny 2013-07-27 12:28:40