看板 java 關於我們 聯絡資訊
※ 引述《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