Java コードのコンパイル

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 ソースが再コンパイルされると、自動的に除去されます。