我在使用Java加載類時遇到了一些問題。在我的項目中,我試圖從任何地方動態地加載一個類。然而,我目前沒有加載硬編碼的代碼,並且在6個小時的谷歌搜索和堆棧溢出檢查後仍然無能爲力。從任意位置加載自定義類
我懷疑是我加載的類的包名有問題。 我的目標是在項目/ resources/dynamicFolderNonInClassPath/loadThis目錄中加載類LoadAClass.java。因爲我是我的URLClassLoader上面設置該文件夾,但我不斷收到一類未發現異常的包已經被設置爲
package loadThis;
public class LoadAClass{
static{
System.out.println("I am loaded");
}
(...)
}
。
File file = new File("C:/Users/Robert/Documents/workspace/project/resources/dynamicFolderNonInClassPath/");
if (!file.exists()) System.out.println("typo!"); //debug print
URL url = file.toURI().toURL();
URLClassLoader loader = new URLClassLoader(new URL[]{url});
String classToBeLoaded = "loadThis.LoadAClass";
Class classy = loader.loadClass(classToBeLoaded);
System.out.println(classy.getCanonicalName()); //debug print
我曾嘗試不同的組合,就像直接設置的URLClassLoader文件或給予充分/資源/ dynamicFolderNonInClassPath/loadThis作爲URL但怎麼至今沒有成功。
有人在聖誕節的心情和看到問題?我對這個功能似乎存在一些誤解,我希望看到它被修復。
只是修復,仍然無法正常工作... – user1922672
你確定文件dynamicFolderNonInClassPath/loadThis/LoadAClass.class存在? – Subin
也打印出loader.getUrls() – Subin