一、前言
基于JDK的tools.jar包中的com.sun.tools.javac.Main类对java源文件进行动态实时编译,具体参见代码示例。
二、代码示例
/**@b@ * Jave Class生成器@b@ */@b@public class JavacTool {@b@ @b@ /**@b@ * 将指定javaPath的java源文件编译@b@ * @param className 指定编译类名称@b@ * @param javaPath 源文件绝对路径@b@ * @param classPath 依赖包classpath@b@ */@b@ public static void build(String className,String javaPath,String classPath){@b@@b@ String javaSourceFile=javaPath+className+".java";@b@ System.out.println("begin to compile class file finished!!!");@b@ String[] cpargs = new String[] {"-d",classPath,javaSourceFile};@b@ com.sun.tools.javac.Main.compile(cpargs,null);@b@ }@b@ @b@ public static void main(String[] args) throws Exception{@b@ build("A","C:/xwood_net/project/xwood-project/JavaTest/src/","");@b@ }@b@ @b@}
效果如下图所示