锁定老帖子 主题:解读ClassLoader
精华帖 (17) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2007-08-27
楼主有没有研究过, 类的卸载或重载(非jvm ti支持的redefine class, 那个只能改方法体, 不能新增, 删除方法).
据我所知, 必须创建一个新的ClassLoader, 这对于实现hot swap是非常麻烦的. 因为老的引用当前类, 是在老的ClassLoader上. 必须将所有引用类都初始化! |
|
返回顶楼 | |
发表时间:2007-08-27
那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢
|
|
返回顶楼 | |
发表时间:2007-08-27
Groovy 写道 那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢
整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的. |
|
返回顶楼 | |
发表时间:2007-08-27
galaxystar 写道 Groovy 写道 那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢
整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的. 自行实现ClassLoader吗? |
|
返回顶楼 | |
发表时间:2007-08-27
Groovy 写道 galaxystar 写道 Groovy 写道 那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢
整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的. 自行实现ClassLoader吗? 是的, 重新实例化一个自定义的ClassLoader, 但是, 我测试过, 当你hot deploy后. 老的ClassLoader还是存在的, 就不清楚它什么时候回收了. 可能system class loader还在引用它吧 |
|
返回顶楼 | |
发表时间:2007-09-18
yfmine 写道 alibubu 写道 每当有一些类似于这样的文章发表时,后面总会跟着一批貌似很明白的人,说着一些类似于“讲的很好”,“不错,能否讲深点”的话,好像只有这样才显示出自己的高深。悲叹啊。
对于classloader,在项目中有谁会用到?我看对于自定义classloader,恐怕也只有在需要对class进行加密后,在classloader级进行class解密才能用得到,而这,又有几个项目需要?还不如多花点时间搞点别的。 非常反感一些人的高深。我不是针对楼主。 还是您老高深…… alibubu说得是,我比较同意,我是在百度上搜索“什么时候需要用到ClassLoader”的时候搜索到这个帖子的。我正在看《深入Java虚拟机》,第3章讲了ClassLoader,我看完了觉得有必要弄清楚什么时候需要用到ClassLoader,因为我看了书上写的一大堆,大概看明白意思了,自然会思考在什么情况下用到它。而不是说“不错,这书讲得很好。能否深入些?” 我觉得这篇帖子适合那些需要用到ClassLoader的Java程序员看,我想并不适合每一个Java程序员吧。 |
|
返回顶楼 | |
发表时间:2007-09-25
收回上面的话。。。
我错了 - -!! |
|
返回顶楼 | |