CLASSPATH: A CLASSPATH egy környezeti változó, amelyet az Application ClassLoader használ a .class fájlok megkeresésére és betöltésére. A CLASSPATH határozza meg a harmadik féltől származó és a felhasználó által definiált osztályok megtalálásának elérési útját, amelyek nem a Java platform kiterjesztései vagy részei. A CLASSPATH beállításakor vegye fel az összes olyan könyvtárat, amely .class fájlokat és JAR fájlokat tartalmaz.
Be kell állítania a CLASSPATH-t, ha:
szalmán kán kán kor
- Olyan osztályt kell betöltenie, amely nem található meg az aktuális könyvtárban vagy bármely alkönyvtárban.
- Olyan osztályt kell betöltenie, amely nem a bővítési mechanizmus által meghatározott helyen található.
A CLASSPATH attól függ, hogy mit állít be a CLASSPATH-on. A CLASSPATH végén van egy könyvtárnév vagy egy fájlnév. A következő pontok leírják, hogy mi legyen a CLASSPATH vége.
- Ha JAR vagy zip, a fájl osztályfájlokat tartalmaz, a CLASSPATH a zip vagy JAR fájl nevével végződik.
- Ha az osztályfájlokat egy névtelen csomagba helyezik, a CLASSPATH az osztályfájlokat tartalmazó könyvtárral végződik.
- Ha az osztályfájlokat egy elnevezett csomagban helyezik el, a CLASSPATH a gyökércsomagot tartalmazó könyvtárral végződik a teljes csomagnévben, vagyis az első csomag a teljes csomagnévben.
A CLASSPATH alapértelmezett értéke egy pont (.). Ez azt jelenti, hogy az egyetlen jelenleg keresett könyvtár. A CLASSPATH alapértelmezett értéke felülírja a CLASSPATH változót, vagy a -classpath paranccsal (röviden -cp). Tegyen egy pontot (.) az új beállításba, ha az aktuális könyvtárat is bele akarja venni a keresési útvonalba.
Ha a CLASSPATH olyan osztályfájlt talál, amely az aktuális könyvtárban található, akkor betölti az osztályt és használja, függetlenül attól, hogy az osztály ugyanazt a nevet tartalmazza-e egy másik könyvtárban, amely szintén benne van a CLASSPATH-ban.
Ha több osztályútvonalat szeretne beállítani, akkor az egyes CLASSPATH-okat pontosvesszővel (;) kell elválasztania.
A JVM-et használó harmadik féltől származó alkalmazások (MySQL és Oracle) módosíthatják a CLASSPATH környezeti változót, hogy belefoglalják az általuk használt könyvtárakat. Az osztályok könyvtárakba vagy archív fájlokba tárolhatók. A Java platform osztályai az rt.jar fájlban vannak tárolva.
A CLASSPATH beállításának két módja van: a Parancssoron keresztül vagy a Környezeti változó beállításával.
Nézzük meg, hogyan állíthatjuk be a MySQL adatbázis CLASSPATH-ját:
1. lépés: Kattintson a Windows gombra, és válassza a Vezérlőpult lehetőséget. Válassza a Rendszer lehetőséget.
2. lépés: Kattintson Haladó rendszerbeállítások .
3. lépés: Megnyílik egy párbeszédpanel. Kattintson a Környezeti változók elemre.
4. lépés: Ha a CLASSPATH már létezik a rendszerváltozókban, kattintson a Szerkesztés gombra, majd tegyen pontosvesszőt (;) a végére. Illessze be a MySQL-Connector Java.jar fájl elérési útját.
cpp egyenlő
Ha a CLASSPATH nem létezik a Rendszerváltozók között, kattintson az Új gombra, és írja be a Változó nevét CLASSPATH néven, a Változó értéket pedig mint C:Program FilesJavajre1.8MySQL-Connector Java.jar;.;
Ne feledje: Tedd ;.; az CLASSPATH végén.
A PATH és a CLASSPATH közötti különbség
PÁLYA | CLASSPATH |
---|---|
A PATH egy környezeti változó. | A CLASSPATH egy környezeti változó is. |
Az operációs rendszer ezt használja a végrehajtható fájlok (.exe) megkeresésére. | Az Application ClassLoader ezt használja a .class fájl megkeresésére. |
Meg kell adnia az .exe fájlokat tartalmazó könyvtárat. | Fel kell vennie az összes olyan könyvtárat, amely .class és JAR fájlokat tartalmaz. |
A PATH környezeti változó beállítása után nem bírálható felül. | A CLASSPATH környezeti változó felülbírálható a -cp vagy -CLASSPATH parancssori kapcsolóval a javac és a java parancsokhoz egyaránt. |
A CLASSPATH beállítása Windows rendszerben a parancssor használatával
Írja be a következő parancsot a parancssorba, és nyomja meg az enter billentyűt.
set CLASSPATH=%CLASSPATH%;C:Program FilesJavajre1.8 t.jar;
A fenti parancsban a The set egy belső DOS-parancs, amely lehetővé teszi a felhasználó számára a változó értékének megváltoztatását. A CLASSPATH egy változónév. A százalékjelbe zárt változó (%) egy létező környezeti változó. A pontosvessző egy elválasztó, a (;) után pedig az rt.jar fájl PATH-ja van.
sztringben összehasonlítani
Hogyan működik az ext mappa a Java-ban
Az ext könyvtár kicsit úgy működik, mint a CLASSPATH. Az ext könyvtár az osztálybetöltési mechanizmus része. A JAR-okon belül az ext könyvtárban elérhető osztályok elérhetők a Java alkalmazások számára.
Az alábbi táblázat bemutatja a CLASSPATH és a kiterjesztési mechanizmus közötti fő különbséget:
Jellemzők | CLASSPATH | Kiterjesztési mechanizmus |
---|---|---|
Osztálybetöltési sorrend | A CLASSPATH betöltődik a bootstrap és a bővítmény betöltése után. | ext betöltődik a bootstrap betöltése után, de a CLASSPATH betöltése előtt. |
Hatály | Ez egy alkalmazásspecifikus. A gazdagépen található összes JRE a CLASSPATH környezeti változó. | Minden JVM egy adott JRE java.ext.dirs fájlban fut. |
Csomag név | A java.class.path az osztályfájlokat tartalmazó könyvtárak és JAR archívumok megkeresésére szolgál. | A java.ext.dirs annak meghatározására szolgál, hogy a kiterjesztési mechanizmus hol töltse be az osztályokat. |
Leírás | Név határozza meg, beleértve a kiterjesztést.jar és a .class fájlokat tartalmazó könyvtárat. | A megadott könyvtárakban lévő összes JAR fájl betöltődik. |
A mechanizmus az összes .jar fájlt felveszi a kiterjesztési könyvtárból akkor is, ha a fájl nem rendelkezik .jar kiterjesztéssel. Ennek megvalósítása az, hogy ha egy osztályútvonal-könyvtárban elhelyezett jar nevét meg lehet változtatni, hogy a kiterjesztés más legyen, mint a .jar. A helyettesítő karakter (*) nem veszi fel. Ez a technika nem működik a bővítménykönyvtárral.
Értsük meg a végrehajtási folyamatot egy példán keresztül.
A.java
public class A { public String toString() { return 'hello'; } }
B.java
public class B { public static void main(final String[] args) { System.out.println(new A()); } }
Fordítsa le az A.java fájlt. a lefordított A.class fájlt archiváljuk az A.jar-ba. Helyezze ezt a JAR fájlt a lefordított B.class fájltól eltérő könyvtárba.
Az osztályútvonal használatának demonstrálására az A.jar fájlt a C:JavaPrograms könyvtárba helyezzük, és a JAR-t helyettesítő karakterrel (*) fogjuk elérni B számára.
Azt találtuk, hogy B továbbra is betöltheti az A.classt, miközben töröltük az aktuális könyvtárból. A Java indítót kifejezetten a C:JavaProgramra keresték. Az is lehetséges, hogy az osztályt anélkül töltse be, hogy ugyanabban a könyvtárban és explicit osztályút-specifikációban jelen lenne.
Gyakran hivatkoznak rá a kiterjesztési mechanizmus használatának előnyére, mivel minden alkalmazás, amely ezt a JRE-t használja, láthatja ugyanazokat az osztályokat anélkül, hogy kifejezetten meg kellene adni őket az osztályútvonalon.
Mi történik, ha az A.jar nevét A.backup-ra változtatjuk ugyanabban a CLASSPATH-hivatkozású könyvtárban. NoClassDefFoundError jelenik meg, amikor ugyanezt tesszük, mert a CLASSPATH hivatkozás nem rendelkezik .jar kiterjesztéssel.
jtextfield