Définition du chemin de génération Java

La présente section explique comment définir le chemin de génération Java.Ce chemin de génération est en fait le chemin d'accès aux classes, utilisé pour la génération d'un projet Java (IJavaProject).

Un chemin de classes est tout simplement un tableau d'entrées de chemin d'accès aux classes (IClassPathEntry) décrivant les types disponibles.Les types peuvent apparaître sous forme source ou binaire et l'ordre des entrées dans le chemin définit l'ordre de recherche pour résoudre les types au cours d'une génération.

Le chemin de génération Java est reflété dans la structure d'un élément de projet Java.Vous pouvez rechercher un projet pour ses racines de fragments de package (IPackageFragmentRoot).  Chaque entrée du chemin de classes mappe vers une ou plusieurs racines de fragments de package, chacune contenant un ensemble de fragments de package.

Cette discussion sur le chemin de génération n'implique pas le chemin d'exécution Java qui peut être défini séparément à partir du chemin de génération.  (Pour plus d'informations sur le chemin de classes d'exécution, reportez-vous à la rubrique Exécution du code Java.)

Modification du chemin de génération

Il est possible de modifier le chemin de génération d'un projet à l'aide d'un programme en utilisant setRawClasspath sur l'élément Java du projet correspondant.Le code suivant définit le chemin de classes d'une ressource de projet :

	IProject project = ... // obtention des ressources du projet
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

Remarque : L'utilisation du terme chemin de classes "brut" (raw) est destinée à mettre l'accent sur le fait que des variables utilisées pour décrire les emplacements des entrées n'ont pas été résolues.

Le chemin de génération Java est conservé dans un fichier appelé .classpath dans la structure de fichiers du projet.Ce fichier permet de partager les paramètres du chemin de génération Java avec d'autres par le biais d'un référentiel de code source. N'éditez pas ce fichier manuellement car il risque d'être corrompu.

Entrées de chemin de classes

Les entrées du chemin de classes peuvent être définies à l'aide des méthodes de fabrique définies sur JavaCore.Les entrées du chemin de classes peuvent faire référence à l'un des éléments suivants :

Schémas d'exclusion

Un schéma d'exclusion peut être affecté à une entrée source de chemin de classes, empêchant certaines ressources d'un dossier source d'être visibles dans le chemin de classes.L'utilisation d'un schéma permet de filtrer les parties spécifiées de l'arborescence de ressources.Chaque chemin de schéma d'exclusion est relatif à l'entrée du chemin de classes et utilise un mécanisme similaire à Ant.Les schémas d'exclusion peuvent être utilisés pour spécifier les dossiers source imbriqués tant que le schéma externe exclut le schéma interne.

Pour plus de détails sur les schémas d'exclusion, reportez-vous à getExclusionPatterns.

L'API de projet Java isOnClasspath vérifie les schémas d'inclusion et d'exclusion avant de déterminer si une ressource particulière se trouve dans le chemin d'accès aux classes.

Remarques :

Schémas d'inclusion

Un schéma d'inclusion peut également être attribué à une entrée de source de chemin de classes, qui définit de manière explicite les ressources afin qu'elles soient visibles sur le chemin de classes.  Lorsque aucun schéma d'inclusion n'est spécifié, l'entrée de la source inclut tous les fichiers pertinents de l'arborescence de ressources ayant pour racine ce chemin d'entrée de source. L'indication d'un ou de plusieurs schémas d'inclusion signifie que seules les parties indiquées de l'arborescence des ressources doivent être indiquées. Chaque chemin indiqué doit être un chemin relatif et sera interprété en fonction de chemin de l'entrée source. Vous devez respecter l'utilisation des majuscules et des minuscules dans le masque de fichiers. Un fichier correspondant à un ou plusieurs masques est inclus dans la racine de fragment de package correspondant sauf s'il est exclu par un ou plusieurs schémas d'exclusion de l'entrée.

Pour obtenir plus d'informations sur la syntaxe et la sémantique des schémas de chemin, reportez-vous à getExclusionPatterns. L'absence de schéma d'inclusion équivaut du point de vue sémantique au schéma d'inclusion explicite **.

L'API de projet Java isOnClasspath vérifie les schémas d'inclusion et d'exclusion avant de déterminer si une ressource particulière se trouve dans le chemin d'accès aux classes.

Exemples:

Résolution du chemin de classes

Comme les variables et les conteneurs de chemin de classes permettent de définir de façon dynamique les entrées de chemin de classes liées, l'API du chemin de classes fait une distinction entre un chemin de classes brut et un chemin de classes résolu.Le chemin de classes brut est le chemin défini à l'origine dans le projet Java à l'aide de setRawClasspath, qui peut être interrogé en demandant getRawClasspath au projet.Le chemin de classes résolu peut être demandé à l'aide de getResolvedClasspath. Cette opération déclenche l'initialisation des variables et des conteneurs nécessaires à la résolution du chemin de classes.De nombreuses opérations liées au modèle Java entraînent la résolution du chemin de génération Java.Par exemple, le calcul des racines de fragments de package d'un projet nécessite que le chemin de génération soit résolu.