如何以编程方式使用JDT编译器



我使用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种方法来编译,其中之一是编译(单位)方法,返回无效和打印错误和问题的printwwriter,因为它不返回列信息,这对我来说是没有用的。另一种方法是resolve(unit)方法,但它只能与一个CompilationUnit一起工作。

compiler.resolve(units[index], true, true, true);

有谁知道我如何使用JDT编译器编程编译多个文件?

org.eclipse.jdt.internal.compiler.Compiler是内部API。根据其resolve方法的JavaDoc: Internal API used to resolve a given compilation unit. Can run a subset of the compilation process .

相反,这里描述了编译Java文件和确定编译问题的官方方法。基本上,您创建一个Java项目并调用Eclipse的构建器,然后查询项目的Java问题标记。

相关内容

  • 没有找到相关文章

最新更新