浏览 7532 次
锁定老帖子 主题:编写自己的ClassLoader知识点
精华帖 (0) :: 良好帖 (0) :: 新手帖 (1) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2011-01-13
题记: public Class<?> loadClass(String name) throws ClassNotFoundException { return loadClass(name, false); } protected synchronized Class<?> loadClass(String name, boolean resolve) throws ClassNotFoundException { // 首先,查询名为name的class有没有加载过 Class c = findLoadedClass(name); // 查询当前ClassLoader有没有加载过 if (c == null) { // 如果没有 try { if (parent != null) { c = parent.loadClass(name, false); // 查询上层LoadClass有没有加载过 } else { c = findBootstrapClass0(name); // 一直遍历到了BootstrapClassLoader,native方法 } } catch (ClassNotFoundException e) { // If still not found, then invoke findClass in order // to find the class. c = findClass(name); // 可扩展点 } } if (resolve) { resolveClass(c); } return c; } class MyCL extends ClassLoader{ protected Class<?> findClass(String name) throws ClassNotFoundException { throw new ClassNotFoundException(name); ... } } 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2011-01-14
just so so?
|
|
返回顶楼 | |
发表时间:2011-01-14
what's you mean?
|
|
返回顶楼 | |
发表时间:2011-01-15
ronry 写道 just so so?
just so so ==> not too bad and not too good |
|
返回顶楼 | |
发表时间:2011-01-15
不知道是什么样的需求,让LZ要自己写ClassLoader。。。
|
|
返回顶楼 | |
发表时间:2011-01-15
onlylau 写道 不知道是什么样的需求,让LZ要自己写ClassLoader。。。
class加解密,OSGi,动态加载class... |
|
返回顶楼 | |
发表时间:2011-01-15
C_J 写道 onlylau 写道 不知道是什么样的需求,让LZ要自己写ClassLoader。。。
class加解密,OSGi,动态加载class... class加密就算了把,终究要在classloader里解密,本来混淆了之后人家要研究整个jar包,现在只要反编译研究你的classloader就over了 之前有人说过用N(可能上千)个classloader,这,太不切实际了 所以这种方式听着似乎高深,其实是最蠢的加密方式 个人愚见 |
|
返回顶楼 | |
发表时间:2011-01-15
C_J 写道 onlylau 写道 不知道是什么样的需求,让LZ要自己写ClassLoader。。。
class加解密,OSGi,动态加载class... 另外,楼主所说的动态加载class是何意?是自己搞一段byte[]表示classFile?这个任何classloader都有实现。没明白楼主所指。 OSGi没接触过,不多做评论 |
|
返回顶楼 | |
发表时间:2011-05-01
你这不是说了等于没说吗……就解析个loadClass(),谁不懂啊…
|
|
返回顶楼 | |
发表时间:2011-05-01
有必要这么鸡冻咩?
|
|
返回顶楼 | |