類載入器,參考:
本文主要的實現的功能是把乙個jar檔案載入到classloader中
原理:把jar檔案載入成url,通過構造乙個urlclassloader,把原來的classloader和jar檔案合併
準備檔案:helloword.jar
其中內容為
package master.classloadertest;
public class helloword
}
通過export匯出成jar檔案,本次的jar名為test.jar,然後新建乙個類,需要把class helloword改名或者刪除
public static void main(string args) throws exception
/**載入jar檔案到classloader中
*@param jarfile jar檔案的完整路徑
*/public static void addjarfile(string jarfile) throws ioexception ;
//通過構造urlclassloader把jar檔案載入到classloader中
urlclassloader cl = urlclassloader.newinstance(jarurlarray, prevclassloader);
thread.currentthread().setcontextclassloader(cl); }}
到此為止,載入jar檔案的程式已經寫好了,執行結果如下:
類載入器ClassLoader
在專案中有時為了實現熱部署,需要動態載入指定路徑下的.class檔案 一般很少使用自定義的類載入器,而是用urlclassloader去載入指定路徑下的.class檔案 urlclassloader 預設是去載入jar包下的.class檔案 public static void main strin...
ClassLoader學習筆記
bootstrap classloader 啟動類載入器 負責jdk的核心類庫 extension classloader 擴充套件類載入器 負責載入jdk擴充套件類庫 使用雙親委託模型可以避免類被重複載入。jvm在判定兩個類是否相同時,不僅判斷是否類名相同,還要判斷是否由同乙個類載入器載入的。自定...
類載入ClassLoader和雙親委派機制
類載入器的發生時間是在類載入過程的載入階段發生的。1.bootstrap class loader會載入rt.jar下面的c 啟動類載入器 2.extension class loader會載入ext jar下面的 擴充套件類載入器 3.system class loader會載入使用者自定義的 應...