java 动态编译源代码

2010/03/24 14:33
阅读数 939

代码非常简单,,要引入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);

这样就可以了,大家基本看得明白吧

 

展开阅读全文
打赏
0
1 收藏
分享
加载中
更多评论
打赏
0 评论
1 收藏
0
分享
返回顶部
顶部