我使用 JDT 来编译我的 java 类。BatchCompiler 返回一个字符串,但我需要一组问题/错误及其列和行信息。编译器.编译(单位);将错误打印到它的打印机,compiler.resolve(unit) 完全符合我的要求,但它只能编译一个 java 文件。
我以这种方式创建了一个编译器对象:
Compiler compiler = new Compiler(env, DefaultErrorHandlingPolicies.exitAfterAllProblems(), new CompilerOptions(), requestor, new DefaultProblemFactory());
并为编译器创建包含文件名和文件内容的 CompilationUnits。
CompilationUnit[] units = project.toCompilationUnit();
AFAIK,有 2 种编译方法,其中一种是 compile(units) 方法,它返回 void 并向其 PrintWriter 打印错误和问题,因为它不返回列信息,这对我没有用。另一种方法是 resolve(unit) 方法,但它只能与一个 CompilationUnit 一起使用。
compiler.resolve(units[index], true, true, true);
有谁知道我如何以编程方式使用 JDT 编译器来编译多个文件?