Compilation de code Java

Les plug-ins de JDT comprennent un compilateur Java incrémentiel et par lots qui sert à générer des fichiers .class Java à partir d'un code source. Le compilateur ne fournit pas d'API directe. Il est installé en tant que compilateur (ou générateur) incrémentiel dans les projets Java. La compilation est déclenchée au moyen des mécanismes de génération standard de la plateforme.

Le mécanisme de génération de la plateforme est décrit en détail dans la section consacrée aux générateurs de ressources.

Compilation du code

En utilisant l'API de génération (build), vous pouvez compiler programmatiquement les fichiers source Java d'un projet.

IProgressMonitor myProgressMonitor;
myProject.build(IncrementalProjectBuilder.INCREMENTAL_BUILD, myProgressMonitor);

Pour un projet Java, cette instruction appelle le générateur de projet incrémentiel Java (avec les autres générateurs de projet incrémentiels qui ont éventuellement été ajoutés à la spécification de génération du projet).

Identification des problèmes

L'API principale (core) de JDT définit un marqueur spécialisé (type "org.eclipse.jdt.core.problem") pour dénoter les problèmes de compilation. Pour découvrir programmatiquement les problèmes détectés par le compilateur, vous devez utiliser le protocole de marqueurs standard de la plateforme. Pour des informations générales sur l'utilisation des marqueurs, consultez la section Marqueurs de ressources.

Le fragment de code suivant localise tous les marqueurs de problèmes Java dans une unité de compilation.

public IMarker[] findJavaProblemMarkers(ICompilationUnit cu) 
    throws CoreException {
    IResource javaSourceFile = cu.getUnderlyingResource();
    IMarker[] markers = 
        javaSourceFile.findMarkers(IJavaModelMarker.JAVA_MODEL_PROBLEM_MARKER,
            true, IResource.DEPTH_INFINITE);
}

Les marqueurs de problèmes Java sont gérés par le générateur de projet incrémentiel Java ; ils sont supprimés automatiquement à mesure que les problèmes sont résolus et que la source Java est recompilée.