大家有办法  把一个类加载之后 再输出成一个文件保存在硬盘里吗?
比如说.有
a.class
b.class
main() 在a.class 里.
在里面new 一个b       b b1 = new b();需要把用b1这个Class,把它输出成一个文件 保存在硬盘上..

解决方案 »

  1.   

    package temp;import java.io.DataInputStream;
    import java.io.DataOutputStream;
    import java.io.FileInputStream;
    import java.io.FileOutputStream;
    import java.io.ObjectOutputStream;
    import java.io.Serializable;
    import java.util.ArrayList;
    import java.util.List;public class A { /**
     * @param args
     */
    public static void main(String[] args) {
    // TODO Auto-generated method stub
    B b=new B(10);
    try{
    ObjectOutputStream d=new ObjectOutputStream(new FileOutputStream("file1"));
    d.writeObject(b);
    d.flush();
    d.close();
    }catch(Exception e){
    e.printStackTrace();
    }
    }}class B implements Serializable {
    private int i=100;
    private List list=new ArrayList();
    B(int j){
    list.add(j);
    }
    }
      

  2.   

    大哥.你很帅哈..不过我试过程序  生成出来的文件 与file1与  B.class 文件 不一样哈.(用UE对比过)..是不是要改一下下...
      

  3.   

    你要B.class啊编译完硬盘上不就有了么
      

  4.   

    //javassit
    import java.io.*;
    import javassist.*;
    public class SaveClass
    {
        public static void main(String[] args)
        {
            if(args.length<1) System.exit(0);
            try
            {
                ClassPool cp=ClassPool.getDefault(null);
                CtClass cc=cp.get(args[0]);
                byte[] bytes=cc.toBytecode();
                File f=new File(args[0]+".class");
                DataOutputStream dos=new DataOutputStream(new FileOutputStream(f));
                dos.write(bytes);
                dos.close();
                f.close();
            }
            catch(Exception ex)
            {
                 ex.printStackTrace();
            }
        }
    }