Impostazione del percorso di generazione Java

In questa sezione viene descritto come impostare il percorso di generazione Java.  Il percorso di generazione è il percorso classi utilizzato per la creazione di un progetto Java (IJavaProject). 

Un percorso classi non è altro che una matrice di voci del percorso classi (IClassPathEntry) che descrivono i tipi disponibili.  I tipi possono essere visualizzati in formato di origine o in formato binario e l'ordine delle voci nel percorso definisce l'ordine di ricerca per la risoluzione dei tipi durante una generazione.

Il percorso di generazione Java si riflette nella struttura di un elemento del progetto Java.  È possibile interrogare un progetto per le relative radici del frammento di pacchetto (IPackageFragmentRoot). Ciascuna voce del percorso di classi esegue l'associazione a una o più radici del frammento di pacchetto, ciascuna contenente un insieme di frammenti di pacchetto.  

Questo aspetto del percorso di generazione non coinvolge il percorso di runtime Java, che può essere definito separatamente dal percorso di generazione.  (Per il percorso classi di runtime, consultare la sezione Esecuzione di un codice Java).

Modifica del percorso di generazione

È possibile modificare in modo programmatico il percorso di generazione di un progetto utilizzando setRawClasspath sull'elemento Java del progetto corrispondente.   Il codice di seguito riportato imposta il percorso classi per una risorsa di progetto:

	IProject project = ... // ottenere risorse di progetto
	IJavaProject javaProject = JavaCore.create(project);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(Nota:  l'utilizzo del termine percorso classi "di base" ha lo scopo di enfatizzare il fatto che tutte le variabili utilizzate per descrivere i percorsi di immissione non sono state risolte).

Il percorso di generazione Java viene reso permanente in un file denominato '.classpath' nella struttura del file del progetto.  Lo scopo di tale file è fornire una modalità di condivisione delle impostazioni del percorso di generazione Java mediante repository del codice di origine. In particolare, questo file non va modificato manualmente, in quanto potrebbe risultarne danneggiato.

Voci del percorso classi

È possibile definire le voci del percorso classi utilizzando i metodi factory definiti in JavaCore.  Le voci del percorso classi possono fare riferimento a uno degli elementi di seguito riportati:

Modelli di esclusione

Ad una voce di origine del percorso classi può essere assegnato un modello di esclusione, che impedisce ad alcune risorse di una cartella di origine di essere visibili nel percorso classi.  L'utilizzo di un modello consente alle parti specificate della struttura risorse di essere escluse tramite filtro.  Il percorso di ciascun modello di esclusione è relativo alla voce del percorso classi e utilizza un meccanismo di modello simile a Ant.  I modelli di esclusione possono essere utilizzati per specificare cartelle di origine nidificate fino a quando il modello esterno esclude il modello interno.

Per i dettagli sui modelli di esclusione, vedere getExclusionPatterns().

L'API del progetto Java isOnClasspath verifica i modelli di esclusione prima di determinare se una particolare risorsa si trova nel percorso classi.

Risoluzione del percorso classi

Poiché le variabili e i contenitori del percorso classi consentono di definire dinamicamente le voci del percorso classi collegate, l'API del percorso classi esegue una distinzione tra un percorso classi di base e un percorso classi risolto.   Il percorso classi di base è l'unico impostato originariamente sul progetto Java mediante setRawClasspath, e può essere ulteriormente sottoposto a query mediante la richiesta di getRawClasspath al progetto.  Il percorso classi risolto può essere sottoposto a query mediante getResolvedClasspath. Questa operazione attiva l'inizializzazione delle variabili e dei contenitori necessari alla risoluzione del percorso classi.  Molte operazioni del modello Java determinano implicitamente la risoluzione del percorso di generazione Java. Ad esempio, l'elaborazione delle radici del frammento di pacchetto di un progetto richiede la risoluzione del percorso di generazione.

Copyright IBM Corporation e altri 2000, 2003. Tutti i diritti riservati.