logo

Kako nastaviti CLASSPATH v Javi

CLASSPATH: CLASSPATH je spremenljivka okolja, ki jo Application ClassLoader uporablja za iskanje in nalaganje datotek .class. CLASSPATH definira pot za iskanje razredov tretjih oseb in uporabniško definiranih razredov, ki niso razširitve ali del platforme Java. Pri nastavitvi CLASSPATH vključite vse imenike, ki vsebujejo datoteke .class in datoteke JAR.

CLASSPATH morate nastaviti, če:

velikosti čajne žličke
  • Naložiti morate razred, ki ni prisoten v trenutnem imeniku ali katerem koli podimeniku.
  • Naložiti morate razred, ki ni na lokaciji, ki jo določa mehanizem razširitev.

CLASSPATH je odvisen od tega, kaj nastavljate CLASSPATH. CLASSPATH ima na koncu ime imenika ali ime datoteke. Naslednje točke opisujejo, kaj naj bo konec CLASSPATH.

  • Če je datoteka JAR ali zip, vsebuje datoteke razreda, se PATH CLASSPATH konča z imenom datoteke zip ali JAR.
  • Če so datoteke razreda v neimenovanem paketu, se CLASSPATH konča z imenikom, ki vsebuje datoteke razreda.
  • Če so datoteke razreda postavljene v poimenovani paket, se CLASSPATH konča z imenikom, ki vsebuje korenski paket v polnem imenu paketa, to je prvi paket v polnem imenu paketa.

Privzeta vrednost CLASSPATH je pika (.). Pomeni edini trenutno iskani imenik. Privzeta vrednost CLASSPATH preglasi, ko nastavite spremenljivko CLASSPATH ali uporabite ukaz -classpath (na kratko -cp). Vstavite piko (.) v novo nastavitev, če želite vključiti trenutni imenik v iskalno pot.

Če CLASSPATH najde datoteko razreda, ki je prisotna v trenutnem imeniku, bo naložil razred in ga uporabil, ne glede na razred z istim imenom v drugem imeniku, ki je prav tako vključen v CLASSPATH.

Če želite nastaviti več razrednih poti, morate vsako CLASSPATH ločiti s podpičjem (;).

Aplikacije drugih proizvajalcev (MySQL in Oracle), ki uporabljajo JVM, lahko spremenijo spremenljivko okolja CLASSPATH, da vključijo knjižnice, ki jih uporabljajo. Razredi so lahko shranjeni v imenikih ali arhivskih datotekah. Razredi platforme Java so shranjeni v rt.jar.

Obstajata dva načina za nastavitev CLASSPATH: prek ukaznega poziva ali z nastavitvijo okoljske spremenljivke.

Poglejmo, kako nastaviti CLASSPATH baze podatkov MySQL:

mehurčkasto razvrščanje v Javi

Korak 1: Kliknite gumb Windows in izberite Nadzorna plošča. Izberite Sistem.

Kako nastaviti CLASSPATH v Javi

2. korak: Kliknite na Napredne sistemske nastavitve .

Kako nastaviti CLASSPATH v Javi

3. korak: Odpre se pogovorno okno. Kliknite Spremenljivke okolja.

Kako nastaviti CLASSPATH v Javi

4. korak: Če CLASSPATH že obstaja v sistemskih spremenljivkah, kliknite gumb Uredi in na koncu vstavite podpičje (;). Prilepite pot do datoteke MySQL-Connector Java.jar.

Če CLASSPATH ne obstaja v sistemskih spremenljivkah, kliknite gumb Novo in vnesite ime spremenljivke kot CLASSPATH in vrednost spremenljivke kot C:Programske datotekeJavajre1.8MySQL-Connector Java.jar;.;

Ne pozabite: postavite ;.; na koncu UČILNE POTI.

Kako nastaviti CLASSPATH v Javi

Razlika med PATH in CLASSPATH

POT CLASSPATH
PATH je spremenljivka okolja. CLASSPATH je tudi spremenljivka okolja.
Operacijski sistem ga uporablja za iskanje izvršljivih datotek (.exe). Application ClassLoader ga uporablja za iskanje datoteke .class.
Vključiti morate imenik, ki vsebuje datoteke .exe. Vključiti morate vse imenike, ki vsebujejo datoteke .class in JAR.
Ko je enkrat nastavljena spremenljivka okolja PATH, je ni mogoče preglasiti. Spremenljivko okolja CLASSPATH je mogoče preglasiti z uporabo možnosti ukazne vrstice -cp ali -CLASSPATH tako za javac kot za ukaz java.

Kako nastaviti CLASSPATH v sistemu Windows z uporabo ukaznega poziva

V ukazni poziv vnesite naslednji ukaz in pritisnite enter.

 set CLASSPATH=%CLASSPATH%;C:Program FilesJavajre1.8
t.jar; 

V zgornjem ukazu je nabor notranji ukaz DOS, ki uporabniku omogoča spreminjanje vrednosti spremenljivke. CLASSPATH je ime spremenljivke. Spremenljivka, obdana z znakom za odstotek (%), je obstoječa spremenljivka okolja. Podpičje je ločilo, za (;) pa je POT datoteke rt.jar.

predmet json v Javi

Kako deluje mapa ext v Javi

Imenik ext deluje podobno kot CLASSPATH. imenik ext je del mehanizma za nalaganje razreda. Razredi, ki so na voljo znotraj datotek JAR v imeniku ext, so na voljo aplikacijam Java.

Naslednja tabela prikazuje ključno razliko med CLASSPATH in mehanizmom razširitve:

Značilnosti CLASSPATH Razširitveni mehanizem
Vrstni red nalaganja razreda CLASSPATH se naloži po nalaganju zagona in razširitve. ext se naloži po zagonskem nalaganju, vendar pred nalaganjem CLASSPATH.
Obseg To je specifična aplikacija. Vsi JRE-ji na gostitelju so spremenljivka okolja CLASSPATH. Vsi JVM-ji se izvajajo v posebnih JRE java.ext.dirs.
Ime paketa java.class.path se uporablja za iskanje imenikov in arhivov JAR, ki vsebujejo datoteke razreda. java.ext.dirs se uporablja za določanje, kje razširitveni mehanizem naloži razrede.
Specifikacija Podan je z imenom, vključno z razširitvijo.jar in imenikom, ki vsebuje datoteke .class. Naložijo se vse datoteke JAR v določenih imenikih.

Mehanizem bo pobral vse datoteke .jar iz imenika s pripono, tudi če datoteka nima pripone .jar. Izvedba tega je, da če lahko spremenite ime jar-ja, postavljenega v imenik classpath, da ima končnico, ki ni .jar. Nadomestni znak (*) ga ne izbere. Ta tehnika ne bo delovala z razširitvenim imenikom.

Razumejmo postopek izvajanja na primeru.

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()); } } 

Prevedite datoteko A.java. arhivirali bomo prevedeno datoteko A.class v A.jar. To datoteko JAR postavite v drug imenik kot v prevedeno datoteko B.class.

Za prikaz uporabe razredne poti postavimo datoteko A.jar v imenik C:JavaPrograms in dostopamo do tega JAR prek nadomestnega znaka (*), da ga B uporabi.

Ugotovili smo, da lahko B še vedno naloži A.class, čeprav smo ga izbrisali iz trenutnega imenika. Zaganjalnik Jave je bil izrecno iskal C:JavaProgram. Možno je tudi, da se razred naloži brez prisotnosti v istem imeniku in izrecne specifikacije poti razreda.

To se pogosto imenuje prednost uporabe razširitvenega mehanizma, ker lahko vse aplikacije, ki uporabljajo ta JRE, vidijo iste razrede, ne da bi jih bilo treba izrecno podati na poti razredov.

Kaj se zgodi, če spremenimo ime A.jar v A.backup v istem imeniku, ki se nanaša na CLASSPATH. NoClassDefFoundError se pojavi, ko naredimo enako, ker sklic CLASSPATH nima pripone .jar.

strukture, ki uporabljajo nize v c