java 动态编译源代码

代码非常简单,,要引入tool.jar这个包

com.sun.tools.javac.Main javac = new Main();

File file =new File("E:/work/JavaGGDS/bin/Test.java");// new File("Test",".java", );
   if(file.exists())file.delete();
   FileWriter fw=new FileWriter(file);
   fw.write("public class "+file.getName().substring(0,file.getName().lastIndexOf("."))+" { public static void a(){System.out.println(\"dddddddd\");}}");
   fw.flush();
   fw.close();
//   String[] arg0=new String[]{"-d",System.getProperty("user.dir"),file.getName()};
   String[] arg0=new String[]{"-d","E:/work/JavaGGDS/bin/","E:/work/JavaGGDS/bin/"+"Test.java"};
   int status=javac.compile(arg0);
   System.out.println(status);
   
   Class cls = Class.forName(file.getName().substring(0,file.getName().lastIndexOf(".")));
   cls.getMethod("a").invoke(null);

posted @ 2010-11-24 22:26  锐洋智能  阅读(332)  评论(0编辑  收藏  举报