Indstil Java-byggestien

I dette afsnit beskrives, hvordan du indstiller Java-byggestien. Byggestien er den classpath, der bruges til bygning af et Java-projekt (IJavaProject).

En classpath er simpelthen et array af classpath-indgange (IClassPathEntry), som beskriver de tilgængelige typer. Typerne kan blive vist i kildeformat eller binært format, og rækkefølgen af indgangene i stien definerer opslagsrækkefølgen ved fortolkning af typer, mens der bygges.

Java-byggestien afspejles i strukturen for et Java-projektelement. Du kan forespørge i et projekt om projektets rødder for pakkefragment (IPackageFragmentRoot). Hver classpath-indgang tilknyttes vha. mapping til én eller flere rødder for pakkefragment, og hver enkelt af disse indeholder atter et sæt pakkefragmenter.

Denne beskrivelse af byggestien involverer ikke Java-runtime-stien, som kan defineres adskilt fra byggestien. (Under Udfør Java-kode kan du finde en beskrivelse af runtime-classpath).

Revidér byggestien

Du kan ændre byggestien for et projekt programmatisk ved at bruge setRawClasspath på det tilsvarende projekts Java-element. Følgende kode indstiller classpath for en projektressource:

	IProject project = ... // hent en projektressource
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

Bemærk: Udtrykket ubehandle ("raw") classpath bruges til at understrege det faktum, at de variabler, der evt. er anvendt til beskrivelse af indgangsplaceringer, ikke er blevet fortolket.

Java-byggestien er bevaret i en fil ved navn '.classpath' i projektets filstruktur. Formålet med denne fil er at levere en metode til deling af Java-byggestiens indstillinger med andre via et opbevaringssted for kildekode. Bemærk, at denne fil må ikke redigeres manuelt, da den risikerer at blive ødelagt.

Classpath-indgange

Classpath-indgange kan defineres ved hjælp af de fabriksmetoder, der defineret for JavaCore. Classpath-indgange kan referere til følgende:

Ekskluderingsmønstre

Der kan tildeles et ekskluderingsmønster til en classpath-kildeindgang, hvilket forhindrer, at bestemte ressourcer i en kildefolder er synlige i classpath. Når der bruges mønster, kan bestemte dele af ressourcetræstrukturen filtreres væk. Hvert ekskluderingsmønster er relativt i forhold til classpath-indgangen og bruger en mønstermekanisme, der minder om Ant. Ekskluderingsmønstre kan bruges til at angive indlejrede kildefoldere, når blot det yderste mønster udelukker det inderste mønster.

Se getExclusionPatterns for at få flere oplysninger om ekskluderingsmønstre.

Java-projektets API isOnClasspath kontrollerer både inkluderings- og ekskluderingsmønstre, før det afgøres, om en bestemt ressource er i classpath.

Bemærkninger:

Inkluderingsmønstre

En classpath-kildeindgang kan også tildeles til et inkluderingsmønster, som eksplicit definerer ressourcer til at være synlige i classpath. Når der ikke er angivet nogen inkluderingsmønstre, inkluderer kildeindgangen alle relevante filer i ressourcetræstrukturen med rod i denne kildeindgangs sti. Hvis du angiver et eller flere inkluderingsmønstre, betyder det, at kun de angivne dele af ressourcetræstrukturen skal inkluderes. Hver angivet sti skal være en relative sti og vil blive fortolket i forhold til denne kildeindgangs sti. I filmønstre skelnes der mellem store og små bogstaver. En fil, der svarer til et eller flere af disse mønstre, inkluderes i den tilsvarende rod for pakkefragment, hvis ikke det ekskluderes af et eller flere af denne indgangs eksklusionsmønstre.

Se getExclusionPatterns for at få flere oplysninger om hver enkelt mønsters syntaks og semantik. Fraværet af alle inkluderingsmønstre svarer semantisk til det eksplicitte inkluderingsmønster **.

Java-projektets API isOnClasspath kontrollerer både inkluderings- og ekskluderingsmønstre, før det afgøres, om en bestemt ressource er i classpath.

Eksempler:

Classpath-fortolkning

Fordi du med classpath-variabler og -opbevaringssteder kan definere dynamisk bundne classpath-indgange, skelner classpath-API'et mellem en ubehandlet og en fortolket classpath. Den ubehandlede classpath er den, der oprindeligt blev indstillet for Java-projektet ved hjælp af setRawClasspath, og som du kan forespørge nærmere om ved at anmode projektet om getRawClasspath. Der kan forespørges om den fortolkede classpath med getResolvedClasspath. Denne funktion udløser initialisering af alle de variabler og opbevaringssteder, der er nødvendige for at fortolke classpath. Mange Java-modelfunktioner får implicit Java-byggestien fortolket. Det kræves f.eks. ved beregning af et projekts rod for pakkefragment, at byggestien er blevet fortolket.