当我用Class.forName()从Class-Path中装载一个.class文件后.我再通过程序动态修改这个.class文件,然后再调用Class.forName()加载这个class,却发现装载的还是旧的.应该是ClassLoader在第一次加载后做了缓存,后面总是从缓存中加载,而不再从.class文件中加载,即使这个.class文件已做了修改.
请问能不能保证每次从.class文件中加载,而不从缓存中加载?

解决方案 »

  1.   

    晕,Class.forName当然不是新的了。
    你看看这个帖子应该对你会有帮助
    http://community.csdn.net/Expert/TopicView3.asp?id=5566663
      

  2.   

    一定要写自己的ClassLoader才能实现动态加载.class文件吗?
      

  3.   

    还请问一下,通过自定义的ClassLoader加载的类文件调用到其它类文件是不是必须也是这个自定义ClassLoader加载的?如果被调用的类是另一个ClassLoader加载的,会不会报错?
      

  4.   

    不一定,这里面有一个层次关系,详细的看ClassLoader机制
      

  5.   

    不一定,这里面有一个层次关系,详细的看ClassLoader机制
      

  6.   

    我知道有一个层次关系的.
    怎么确定我自定义的ClassLoader是属于哪个ClassLoader的子ClassLoader?
    如果我想将我自定义的ClassLoader成为另一个ClassLoader的子Classloader,应该怎么做呢?