1
我的問題是,我在Java6上工作的代碼不再工作。 由於我的應用程序需要加載的jar的在運行時(插件),我寫myselt一個簡單的類從URLClassLoader的派生這樣Java 7:使用URLClassLoader不再工作
public class MyClassLoader extends java.net.URLClassLoader {
/** Creates a new instance of URLClassLoader */
public MyClassLoader(java.net.URL url)
{
super(new java.net.URL[]{url},ClassLoader.getSystemClassLoader());
}
public void addURL(java.net.URL url)
{
super.addURL(url);
}}
所以,如果我想加載一個罐子,我只需調用addURL(pathToJar)和載荷通過
Class.forName(myClass, true, myClassLoader)
這工作就像在Java6上運行的魅力。 現在我決定在Java7中製作一個自包含的Java應用程序。 當我啓動應用程序時,jar也會在運行時被加載,但是如果裏面有一個派生自classpath內部的類(不在插件jar中)的類,我會得到一個ClassCastException。
所以我猜Java7中的某些內容已經發生了變化。 目前我在OSX上使用Java7_u13。 任何人都可以告訴我應該做什麼,讓舊的行爲恢復嗎?搜索網絡還沒有得到任何幫助。
非常感謝提前。
問候,-chris-