【发布时间】:2010-11-02 05:44:19
【问题描述】:
我们有一个 servlet 项目,其中包含(在许多其他类中)我们向用户公开的接口。
用户可以编译他们自己的实现所提供接口的类(以 .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文件时,找不到接口是不是有原因?
【问题讨论】:
标签: java dynamic classpath classloader classnotfoundexception