Re: [問題] ClassLoader

看板java作者 (偶爾想擺爛一下)時間15年前 (2010/10/16 12:19), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串4/4 (看更多)
※ 引述《meconin (miss you ~)》之銘言: : 抱歉,一下忘了給,想說反正就是 find class : protected Class<?> findClass (String name) throws ClassNotFoundException { : byte[] clsdef = null; : try { : clsdef = loadClassData (name); : } catch (Exception e) { : e.printStackTrace(); : } : Class<?> cls; : cls = defineClass (name,clsdef,0,clsdef.length,null); : resolveClass (cls); : return cls; : } : loadClassData 就是去特定路徑把 clsA.class, clsB.class 讀出來成 byte [] : 所以說 clsA.class, clsB.class 不能放在 classpath 下囉? : 不然就會被 AppClassLoader 看到 ... : 我是預期 ld.load 會比 AppClassLoader 早 load 到 clsA.class, clsB.class 沒有改寫 loadClass method 的情況下,只有在一個 class 尚未被載入過,且 parent class loader 也無法載入指定的 class,才會使用到 findClass method。 (詳見 API doc: http://ppt.cc/bQ,c) 如果 classpath 有包含 clsA/clsB 所在路徑,那麼你的 class loader 在執行 loadClass 操作時,會由其 parent loader 載入 clsA/clsB class。 -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 60.248.91.247
文章代碼(AID): #1CkIVLSH (java)
討論串 (同標題文章)
文章代碼(AID): #1CkIVLSH (java)