JDT を使用して Java クラスをコンパイルします。BatchCompiler は文字列を返しますが、列と行の情報に関する問題/エラーの配列が必要です。コンパイラ.コンパイル(ユニット); エラーをprintwriterに出力します。compiler.resolve(unit)はまさに私が望むことを行いますが、コンパイルできるJavaファイルは1つだけです。
この方法でコンパイラ オブジェクトを作成しました。
Compiler compiler = new Compiler(env, DefaultErrorHandlingPolicies.exitAfterAllProblems(), new CompilerOptions(), requestor, new DefaultProblemFactory());
そして、ファイル名とファイルの内容を含む CompilationUnits をコンパイラに作成します。
CompilationUnit[] units = project.toCompilationUnit();
私の知る限り、コンパイルには2つの方法があります。そのうちの1つは、voidを返し、エラーと問題をPrintWriterに出力するcompile(units)メソッドです。これは、列情報を返さないため、私にとっては役に立ちません。もう 1 つの方法は resolve(unit) メソッドですが、1 つの CompilationUnit でしか機能しません。
compiler.resolve(units[index], true, true, true);
プログラムでJDTコンパイラを使用して複数のファイルをコンパイルする方法を知っている人はいますか?