Re: [問題] ClassLoader

看板java作者 (偶爾想擺爛一下)時間15年前 (2010/10/15 19:41), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/4 (看更多)
※ 引述《meconin (miss you ~)》之銘言: : 我現在有兩個 class 希望是用自己的 loader load 起來 : clsA, clsB, : clsA{ : test(){ : System.out.println( : clsA.class.getClassLoader().getClass().getName()); : } : } : clsB{ : static test(){ : clsA a = new clsA(); : System.out.println(new a.test()); : } : } : 我的 loader 暫時稱呼為 ld : 我在 main 裡面寫 : main{ : Class a = ld.load("clsA", false); : Class b = ld.load("clsB", false); : b.test(); : } : 會發現 clsA 的 loader 是 sun.misc.Launcher$AppClassLoader : 不知道有沒有高手對這個機制比較了解,可以說明一下? 你的 class loader 最重要了,你反而沒有給。 看起來你的 class loader 實做的 loadClass 是採一般的 delegation model, 而你在執行程式時所設定的 classpath 包含了 clsA 所在的路徑,所以當程式 使用你設計的 class loader 企圖載入 clsA 時,你的 class loader 會 delegate 給其 parent loader,而 parent loader(sun.misc.Launcher$AppClassLoader) 找的到 clsA 的 class file,於是就由 parent loader 載入 clsA。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 114.24.83.190
文章代碼(AID): #1Ck3ta8I (java)
討論串 (同標題文章)
本文引述了以下文章的的內容:
以下文章回應了本文
完整討論串 (本文為第 2 之 4 篇):
文章代碼(AID): #1Ck3ta8I (java)