diff --git a/cloud-rule-engine/src/main/java/com/muyu/util/SourceCodeCompiler.java b/cloud-rule-engine/src/main/java/com/muyu/util/SourceCodeCompiler.java index 01bdd53..c2c46b5 100644 --- a/cloud-rule-engine/src/main/java/com/muyu/util/SourceCodeCompiler.java +++ b/cloud-rule-engine/src/main/java/com/muyu/util/SourceCodeCompiler.java @@ -59,40 +59,18 @@ public class SourceCodeCompiler { */ public static void javaCompiler(File...file){ try { - //通过源文件获取到想要编译的java类源代码迭代器,包括所有的内部类,其中每一个类都是一个JavaFileObjects,也被称为一个汇编单元 - Iterable javaFileObjects = fileManager.getJavaFileObjects(file); - //生成编译任务 - JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, Arrays.asList("-d","home/"), null, javaFileObjects); - //执行编译任务 - task.call(); +// //通过源文件获取到想要编译的java类源代码迭代器,包括所有的内部类,其中每一个类都是一个JavaFileObjects,也被称为一个汇编单元 +// Iterable javaFileObjects = fileManager.getJavaFileObjects(file); +// //生成编译任务 +// JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, Arrays.asList("-d","home/"), null, javaFileObjects); +// //执行编译任务 +// task.call(); + JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); + int results = compiler.run(null, null, null, "/home"); + System.out.println((results == 0)?"编译成功":"编译失败"); }catch (Exception e){ log.error(e); } } -// try { -// // 初始化 fileManager(此处省略,假设您已有此步骤) -// -// // 创建一个包含所有依赖 JAR 文件的类路径列表 -// List classpath = Arrays.asList( -// "/home/app.jar" -// ); -// -// // 通过源文件获取到想要编译的 JavaFileObjects -// Iterable javaFileObjects = fileManager.getJavaFileObjectsFromFiles(Arrays.asList(file)); -// -// // 生成编译任务,包含类路径 -// JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, null, -// Collections.singletonList("-d"), null, classpath, javaFileObjects); -// -// // 执行编译任务 -// boolean success = task.call(); -// if (!success) { -// throw new RuntimeException("Compilation failed"); -// } -// } catch (Exception e) { -// // 适当的错误处理 -// e.printStackTrace(); // 或使用日志记录 -// } - }