作者sbrhsieh (偶尔想摆烂一下)
看板java
标题Re: [问题] ClassLoader
时间Sat Oct 16 12:19:30 2010
※ 引述《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