ClassLoader學習和類載入器載入Jar檔案

2021-08-28 17:44:06 字數 838 閱讀 8682

類載入器,參考:

本文主要的實現的功能是把乙個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會載入使用者自定義的 應...