我不知道怎么实现文件改变就重新载入
重新载入是Class.forName("...");

解决方案 »

  1.   

    应该没有办法吧? 他去读取原有的class应该是java的原本优点之一
      

  2.   

    这个问题有深度,Tomcat好像实现了动态载入功能
    比如你拷一个war包到webapps目录下,Tomcat自动解包了
    还有像jsp页面在tomcat启动的情况下也是可以改变的
    因为jsp页面实际是被编译成.class文件的所以这个功能还是可行的,这个要仔细研究一下JAVA的反射(reflect)机制
      

  3.   

    你应该把你所写的程序说清楚一点:
    1、有什么功能模块,由哪些类组成?
    2、运行平台?
    3、会改变的class有几个,该类的作用是什么?
      

  4.   

    谢谢大家的支持。
    我的程序可以简单的分为2个模块
    一个是主模块,负责调用子模块:Class.forName("子模块");
    经常有改变的是子模块,它们负责具体的工作
    我想 chanceqw 老兄已经理解了我的意思。不知各位有没有方法能实现啊~~~~~~~~~~
      

  5.   

    你可以定义一个自己的ClassLoader然后加载时使用自定义的ClassLoader就行了。书上介绍过,没有试验过。
      

  6.   

    没用过,按我认为每次调用完子模块后都将其销毁,用时再重新加载,应该就是新的程序了.
    在Tomcat中可以动态加载jsp文件,.class文件是不可以动态加载的.
      

  7.   

    try
    {
     Class c=Class.forName("java.util.ArrayList");
     Object o=c.newInstance();
     ArrayList list=(ArrayList)o;
     list.add(new Integer(1));
     list.add(new String("hi"));
     list.add(new Date());
    for(Object o1:list)
     System.out.println(o1+" ");
    }
    catch(Exception e)
    {
    }楼主拿分来啊~~~~~~~~~~
      

  8.   

    “在Tomcat中可以动态加载jsp文件,.class文件是不可以动态加载的.”
    看看这个目录下的文件就知道了
    tomcat\work\Catalina\localhost\_\org\apache\jsp
    jsp都是编译成class文件的,动态加载jsp就是动态加载.class
      

  9.   

    你问的是JAVA还是JSP;;;
    是JAVA的话是不行的..JSP吗,,是可以的,,,