Java összeépítéshez használt útvonal beállítása

Ez a szakasz leírja, hogy hogyan kell a Java összeépítési útvonalat beállítani.  Az összeépítési útvonal az az osztályútvonal, amit a rendszer Java projektek (IJavaProject) összeépítéséhez használ.

Az osztályútvonal nem más, mint osztályútvonal bejegyzések IClassPathEntry) tömbje, ami leírja a rendelkezésre álló típusokat.  A típusok forrás és bináris formátumban is megjelenhetnek. Az elérési útvonalon található bejegyzések rendje meghatározza az összeépítés közben a típusok feloldásához használt kikeresési rendet.

A Java összeépítési útvonalat a Java projekt elemek szerkezete is tükrözi.  Egy projektben lekérdezheti a csomagtöredék gyökereket (IPackageFragmentRoot).  Minden osztályútvonal bejegyzés ki van osztva legalább egy csomagtöredék gyökérhez, továbbá ezek közül mindegyik tartalmaz egy csomagtöredék halmazt.

Az összeépítési útvonal tárgyalásának nem része a tőle függetlenül meghatározható Java futási környezet útvonala.  (A futási osztályútvonal tárgyalásához lásd a Java kód futtatása leírást.)

Összeépítési útvonal módosítása

Programozási eljárással megváltoztathatja egy projekt összeépítési útvonalát a setRawClasspath metódus használatával a megfelelő projekt Java elemen.  A következő kód állítja be a projekt erőforrás osztályútvonalát:

	IProject project = ... // projekt erőforrások megadása
	IJavaProject javaProject = JavaCore.create(projekt);
	IClasspathEntry[] newClasspath = ...;
	javaProject.setRawClasspath(newClasspath, someProgressMonitor);
	

(Megjegyzés:  A "raw" classpath (nyers osztályútvonal) kifejezés használata azt a tényt hangsúlyozza, hogy a belépési pontokat leíró változók még nem lettek feloldva.

A Java összeépítési útvonal a projekt fájlszerkezetében, egy '.classpath' nevű fájlban van tárolva.  A fájl célja, hogy lehetőséget biztosítson a Java összeépítési útvonal beállításainak megosztásához forráskód lerakatokon keresztül.A sérülések elkerülése miatt, a fájlt nem szabad saját kezűleg szerkeszteni.

Osztályútvonal bejegyzések

A JavaCore oldalon meghatározott gyári metódusok használatával lehet az osztályútvonal bejegyzéseket meghatározni.  Osztályútvonal bejegyzések az alábbi objektumokra hivatkozhatnak:

Kizárási minták

Osztályútvonal forrás bejegyzésekhez kizárási mintákat lehet hozzárendelni, amely megakadályozza, hogy a forrásmappában található bizonyos erőforrások láthatók legyenek az osztályútvonalon.  A minta használatával az erőforrásfa megadott részei kiszűrhetők.  Minden kizárási minta útvonal relatív az osztály útvonal bejegyzéshez képest és az Ant rendszerhez hasonló minta mechanizmust használ.  Kizárási minták beágyazott forrásmappák esetében is használhatók, amennyiben a külső minta kizárja a belső mintát.

A kizárási mintákról további információkat a getExclusionPatterns() metódus leírásánál találhat.

A Java projekt API isOnClasspath metódusa egyaránt ellenőrzi a tartalmazó és kizárási mintákat, mielőtt meghatározná, hogy egy bizonyos forrás az osztályútvonalon van-e vagy nem.

Megjegyzések:

Tartalmazási minták

Az osztályútvonal forrás bejegyzéshez tartalmazási mintát is lehet rendelni. A tartalmazási minták egyértelműen meghatározzák azokat az erőforrásokat, amelyek láthatóak az osztályútvonalon.  Ha tartalmazási minták nem lettek megadva, akkor a forrásbejegyzés minden erőforrásfában található fájlt magába foglal, ami a forrásbejegyzés útvonalán található. Ha legalább egy tartalmazási minta meg van adva, az azt jelenti, hogy a forrásfának csak a megadott része lesz tartalmazva. Minden megadott útvonalnak relatív útvonalnak kell lennie és a forrásbejegyzés útvonalához relatívan lesz értelmezve. A fájlmintákban a rendszer megkülönbözteti a kis- és nagybetűket.Az olyan fájlok, amelyek legalább egy mintával megegyeznek, azokat a megfelelő csomagtöredék gyökér tartalmazza, hacsak nem zárja ki a bejegyzés legalább egy kizárási mintája.

Az útvonalminták szintaxisának és szemanikájának tárgyalása a getExclusionPatterns() metódus leírása alatt található. A tartalmazási minták hiánya szemantikailag megegyezik az explicit ** tartalmazási mintával.

A Java projekt API isOnClasspath metódusa egyaránt ellenőrzi a tartalmazó és kizárási mintákat, mielőtt meghatározná, hogy egy bizonyos forrás az osztályútvonalon van-e vagy nem.

Példák:

Osztályútvonal felbontás

Mivel az osztályútvonal változók és tárolók megengedik a dinamikusan kötött osztályútvonal bejegyzések megadását, ezért az osztályútvonal API megkülönbözteti a nyers és felbontott osztályútvonalakat.   A nyers osztályútvonal eredetileg a setRawClasspath, használatával lett beállítva a Java projekthez, további lekérdezését pedig a projektnek kiadott getRawClasspath metódussal végezhetjük el.  A felbontott osztályútvonalat a getResolvedClasspath használatával lehet lekérdezni. Ez a művelet aktiválja az osztályútvonal felbontásához szükséges minden változó és tároló inicializálását. Számos Java modell művelet magától adódóan kezdeményezi a Java összeépítési útvonal felbontását. Például egy projekt csomagtöredék gyökereinek kiszámítása is igényli az összeépítési útvonal felbontását.