估计很少有人回答这个问题...当你启动java程序得时候,系统有一个默认得classloader,也许你可以从那个
classloader中把载入得b1  class信息remove掉.

解决方案 »

  1.   

    楼主的设计有问题,而且照JVM的逻辑,你的要求是无法实现的.
    还是说说你为什么会用到动态编译的原因吧,看看有没有其它办法.
      

  2.   

    JVM的规范里面有提到动态编译的问题,但你所提到的我不清楚是否可以这样做。
    我推荐一本书给你:深入Java虚拟机 译者:蒋倩 曹小刚 书店应该有买 58块。
    里面有提到相关的内容,当然最好还是自己看JVM Spec 。
      

  3.   

    用到动态重编译是有如下原因的:需要用java在服务器上写个服务程序,要求最好是不间断运行,如果只是部分代码做了更改,没有涉及到根本性的设计或架构的改变,希望可以不中断服务,动态重编译更改的类,实现新改变后功能。
      

  4.   

    这样可以参考JMX的设计实现。
      

  5.   

    使用工厂模式就可以解决问题了,这可是factory的主要好处,呵呵。