用java语言编译内存中java小程序,并将生成的.class文件保存在一个文件夹下。

来源:互联网 发布:韩国和中国知乎 编辑:程序博客网 时间:2024/05/17 02:47
public class DynamicCompile {            private final static String PATH = ****;//根据实际情况填写路径            public static boolean compile(String id, String file_name, String file_content) throws IOException, ClassNotFoundException, NoSuchMethodException, SecurityException, IllegalAccessException, IllegalArgumentException, InvocationTargetException, InstantiationException{                    /*          * 编译内存中的java代码          * */  //1.创建保存的文件夹      int index = file_name.lastIndexOf(".java");      file_name = file_name.substring(0, index);            String class_path = PATH + id;      File file = new File(class_path);      if(!file.exists() && !file.isDirectory()) {          file.mkdir();      }            // 2.开始编译(<span style="font-family: Arial, Helvetica, sans-serif;">file_content就是内存中的java程序</span><span style="font-family: Arial, Helvetica, sans-serif;">)</span>      JavaCompiler javaCompiler = ToolProvider.getSystemJavaCompiler();      JavaFileObject fileObject = new CharSequenceJavaFileObject(file_name, file_content);      CompilationTask task = javaCompiler.getTask(null, null, null, Arrays.asList("-g", "-d", class_path), null, Arrays.asList(fileObject));      boolean result = task.call();            return result;  }  

0 0
原创粉丝点击