JDT プラグインには、ソース・コードから Java の .class ファイルをビルドするための インクリメンタル Java コンパイラーおよびバッチ Java コンパイラーが含まれています。このコンパイラーは、直接 API を提供していません。 直接 API は、Java プロジェクトに対するインクリメンタル・ビルダーとしてインストールされます。 コンパイルは、プラットフォームの標準のビルド・メカニズムを使用して起動されます。
プラットフォームのビルド・メカニズムについては、 「リソース・ビルダー」で 詳細に説明されています。
ビルド API を使用すると、プロジェクトの Java ソース・ファイルをプログラムでコンパイルすることができます。
IProgressMonitor myProgressMonitor;
myProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, myProgressMonitor);
Java プロジェクトの場合、このコードにより Java インクリメンタル・プロジェクト・ビルダーが (プロジェクトのビルド・スペックに追加されているその他のすべてのインクリメンタル・プロジェクト・ビルダーと共に) 起動されます。
JDT コアは、コンパイルの問題を示すための特別なマーカー ("org.eclipse.jdt.core.problem" というマーカー型) を定義しています。 コンパイラーによって検出された問題をプログラムで発見するには、 プラットフォームの標準のマーカー・プロトコルを使用する必要があります。 マーカーの使用方法の概要については、 「リソース・マーカー」を 参照してください。
以下のコードの断片により、コンパイル単位内のすべての Java 問題のマーカーが検出されます。
public IMarker[] findJavaProblemMarkers(ICompilationUnit cu)
throws CoreException {
IResource javaSourceFile = cu.getUnderlyingResource();
IMarker[] markers =
javaSourceFile.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
true, IResource.DEPTH_INFINITE);
}
Java 問題マーカーは、Java インクリメンタル・プロジェクト・ビルダーによって管理され、 問題が解決されて Java ソースが再コンパイルされると、自動的に除去されます。