我們有一個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