logo

Hogyan állítsuk be a CLASSPATH-t Java-ban

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.

Hogyan állítsuk be a CLASSPATH-t Java-ban

2. lépés: Kattintson Haladó rendszerbeállítások .

Hogyan állítsuk be a CLASSPATH-t Java-ban

3. lépés: Megnyílik egy párbeszédpanel. Kattintson a Környezeti változók elemre.

Hogyan állítsuk be a CLASSPATH-t Java-ban

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.

Hogyan állítsuk be a CLASSPATH-t Java-ban

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