※ 引述《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