论坛首页 Java企业应用论坛

解读ClassLoader

浏览 75882 次
精华帖 (17) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2007-08-27  
楼主有没有研究过, 类的卸载或重载(非jvm ti支持的redefine class, 那个只能改方法体, 不能新增, 删除方法).

据我所知, 必须创建一个新的ClassLoader,
这对于实现hot swap是非常麻烦的.

因为老的引用当前类, 是在老的ClassLoader上.
必须将所有引用类都初始化!
0 请登录后投票
   发表时间:2007-08-27  
那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢
0 请登录后投票
   发表时间:2007-08-27  
Groovy 写道
那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢


整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的.
0 请登录后投票
   发表时间:2007-08-27  
galaxystar 写道
Groovy 写道
那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢


整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的.
这个下层是通过什么来实现的呢
自行实现ClassLoader吗?
0 请登录后投票
   发表时间:2007-08-27  
Groovy 写道
galaxystar 写道
Groovy 写道
那么如果想在程序中动态的reload某个jar(这个jar文件在硬盘上可能已经被替换了)应该如何做呢


整个jar都想热替换, 你不如就hot deploy一把算了, 像jboss与tomcat, 都是整个context初始化一遍的.
这个下层是通过什么来实现的呢
自行实现ClassLoader吗?


是的, 重新实例化一个自定义的ClassLoader, 但是, 我测试过, 当你hot deploy后.
老的ClassLoader还是存在的, 就不清楚它什么时候回收了.

可能system class loader还在引用它吧
0 请登录后投票
   发表时间:2007-09-18  
yfmine 写道
alibubu 写道
每当有一些类似于这样的文章发表时,后面总会跟着一批貌似很明白的人,说着一些类似于“讲的很好”,“不错,能否讲深点”的话,好像只有这样才显示出自己的高深。悲叹啊。
对于classloader,在项目中有谁会用到?我看对于自定义classloader,恐怕也只有在需要对class进行加密后,在classloader级进行class解密才能用得到,而这,又有几个项目需要?还不如多花点时间搞点别的。
非常反感一些人的高深。我不是针对楼主。

还是您老高深……


alibubu说得是,我比较同意,我是在百度上搜索“什么时候需要用到ClassLoader”的时候搜索到这个帖子的。我正在看《深入Java虚拟机》,第3章讲了ClassLoader,我看完了觉得有必要弄清楚什么时候需要用到ClassLoader,因为我看了书上写的一大堆,大概看明白意思了,自然会思考在什么情况下用到它。而不是说“不错,这书讲得很好。能否深入些?”
我觉得这篇帖子适合那些需要用到ClassLoader的Java程序员看,我想并不适合每一个Java程序员吧。
0 请登录后投票
   发表时间:2007-09-25  
收回上面的话。。。

我错了

- -!!
0 请登录后投票
论坛首页 Java企业应用版

跳转论坛:
Global site tag (gtag.js) - Google Analytics