用JavaCompiler编译目录

用JavaCompiler编译目录,java,file,java-compiler-api,Java,File,Java Compiler Api,我有以下代码用于使用JavaCompiler编译单个文件: JavaCompiler compiler = ToolProvider.getSystemJavaCompiler(); DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>(); StandardJavaFileManager fileManager = compiler.getSta

我有以下代码用于使用JavaCompiler编译单个文件:

JavaCompiler compiler = ToolProvider.getSystemJavaCompiler();
DiagnosticCollector<JavaFileObject> diagnostics = new DiagnosticCollector<JavaFileObject>();
StandardJavaFileManager fileManager = compiler.getStandardFileManager(diagnostics, null, null);
Iterable<? extends JavaFileObject> compilationUnits = fileManager.getJavaFileObjectsFromStrings(Arrays.asList(file.getAbsolutePath()));
JavaCompiler.CompilationTask task = compiler.getTask(null, fileManager, diagnostics, null, null, compilationUnits);
boolean success = task.call();
fileManager.close();
JavaCompiler compiler=ToolProvider.getSystemJavaCompiler();
DiagnosticCollector diagnostics=新建DiagnosticCollector();
StandardJavaFileManager fileManager=compiler.getStandardFileManager(诊断,null,null);

Iterable从目录中获取所有文件(使用),并将生成的数组传递给

这给了我:线程“AWT-EventQueue-0”java.lang.IllegalArgumentException中的异常:com.sun.tools.javac.util.DefaultFileManager$RegularFileObject不支持的目录。确保使用listFiles(FileFilter)过滤掉不需要的文件 : . 你真的需要学习阅读API文档。它的目的是为了阅读。为了更快地获得更好的帮助,请发布一篇文章。