logo

Cum să setați CLASSPATH în Java

CLASSPATH: CLASSPATH este o variabilă de mediu care este utilizată de Application ClassLoader pentru a localiza și încărca fișierele .class. CLASSPATH definește calea pentru a găsi clase terțe și definite de utilizator care nu sunt extensii sau fac parte din platforma Java. Includeți toate directoarele care conțin fișiere .class și fișiere JAR atunci când setați CLASSPATH.

Trebuie să setați CLASSPATH dacă:

algoritmul knn
  • Trebuie să încărcați o clasă care nu este prezentă în directorul curent sau în orice subdirectoare.
  • Trebuie să încărcați o clasă care nu se află într-o locație specificată de mecanismul de extensii.

CLASSPATH depinde de ceea ce setați CLASSPATH. CLASSPATH are un nume de director sau un nume de fișier la sfârșit. Următoarele puncte descriu ceea ce ar trebui să fie sfârșitul CLASSPATH.

  • Dacă este un JAR sau zip, fișierul conține fișiere de clasă, CLASSPATH se termină cu numele fișierului zip sau JAR.
  • Dacă fișierele de clasă sunt plasate într-un pachet fără nume, CLASSPATH se termină cu directorul care conține fișierele de clasă.
  • Dacă fișierele de clasă sunt plasate într-un pachet numit, CLASSPATH se termină cu directorul care conține pachetul rădăcină în numele complet al pachetului, adică primul pachet din numele complet al pachetului.

Valoarea implicită a CLASSPATH este un punct (.). Înseamnă singurul director curent căutat. Valoarea implicită a CLASSPATH suprascrie atunci când setați variabila CLASSPATH sau folosiți comanda -classpath (pentru scurt -cp). Puneți un punct (.) în noua setare dacă doriți să includeți directorul curent în calea de căutare.

Dacă CLASSPATH găsește un fișier de clasă care este prezent în directorul curent, atunci va încărca clasa și o va folosi, indiferent de clasa cu același nume prezentă într-un alt director care este, de asemenea, inclus în CLASSPATH.

Dacă doriți să setați mai multe căi de clasă, atunci trebuie să separați fiecare CLASSPATH printr-un punct și virgulă (;).

Aplicațiile terțe (MySQL și Oracle) care utilizează JVM pot modifica variabila de mediu CLASSPATH pentru a include bibliotecile pe care le folosesc. Clasele pot fi stocate în directoare sau fișiere arhive. Clasele platformei Java sunt stocate în rt.jar.

Există două moduri de a seta CLASSPATH: prin linia de comandă sau prin setarea variabilei de mediu.

Să vedem cum să setăm CLASSPATH a bazei de date MySQL:

Pasul 1: Faceți clic pe butonul Windows și alegeți Panou de control. Selectați Sistem.

Cum să setați CLASSPATH în Java

Pasul 2: Click pe Setari de sistem avansate .

câte filme cu misiune imposibilă sunt acolo
Cum să setați CLASSPATH în Java

Pasul 3: Se va deschide o casetă de dialog. Faceți clic pe Variabile de mediu.

Cum să setați CLASSPATH în Java

Pasul 4: Dacă CLASSPATH există deja în Variabilele de sistem, faceți clic pe butonul Editați apoi puneți punct și virgulă (;) la sfârșit. Lipiți Calea fișierului Java.jar MySQL-Connector.

Dacă CLASSPATH nu există în Variabilele de sistem, faceți clic pe butonul Nou și tastați Nume variabilă ca CLASSPATH și Valoare variabilă ca C:Program FilesJavajre1.8MySQL-Connector Java.jar;.;

Amintiți-vă: Pune ;.; la sfârşitul CLASSPATH.

Cum să setați CLASSPATH în Java

Diferența dintre PATH și CLASSPATH

CALE CLASSPATH
PATH este o variabilă de mediu. CLASSPATH este, de asemenea, o variabilă de mediu.
Este folosit de sistemul de operare pentru a găsi fișierele executabile (.exe). Este folosit de Application ClassLoader pentru a localiza fișierul .class.
Vi se cere să includeți directorul care conține fișiere .exe. Vi se cere să includeți toate directoarele care conțin fișiere .class și JAR.
Variabila de mediu PATH odată setată, nu poate fi suprascrisă. Variabila de mediu CLASSPATH poate fi suprascrisă utilizând opțiunea de linie de comandă -cp sau -CLASSPATH atât la comanda javac, cât și la comanda java.

Cum să setați CLASSPATH în Windows utilizând promptul de comandă

Tastați următoarea comandă în linia de comandă și apăsați pe Enter.

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

În comanda de mai sus, Setul este o comandă DOS internă care permite utilizatorului să modifice valoarea variabilei. CLASSPATH este un nume de variabilă. Variabila inclusă în semnul procentual (%) este o variabilă de mediu existentă. Punctul și virgulă este un separator, iar după (;) există PATH-ul fișierului rt.jar.

char și int java

Cum funcționează folderul ext în Java

Directorul ext funcționează un pic ca CLASSPATH. directorul ext este o parte a mecanismului de încărcare a clasei. Clasele care sunt disponibile în JAR în directorul ext sunt disponibile pentru aplicațiile Java.

Următorul tabel demonstrează diferența cheie dintre CLASSPATH și mecanismul de extindere:

Caracteristici CLASSPATH Mecanism de extindere
Ordinea de încărcare a clasei CLASSPATH se încarcă după bootstrap și încărcarea extensiei. incarcari ext dupa incarcarea bootstrap, dar inainte de incarcarea CLASSPATH.
Domeniul de aplicare Este o aplicație specifică. Toate JRE-urile de pe gazdă sunt variabilele de mediu CLASSPATH. Toate JVM-urile rulează în JRE java.ext.dirs specifice.
Numele pachetului java.class.path este folosit pentru a găsi directoarele și arhivele JAR care conțin fișiere de clasă. java.ext.dirs este folosit pentru a specifica unde mecanismul de extensie încarcă clasele.
Specificație Este specificat prin nume, inclusiv extensia.jar și directorul care conține fișiere .class. Toate fișierele JAR din directoarele specificate sunt încărcate.

Mecanismul va prelua toate fișierele .jar din directorul de extensii chiar dacă fișierul nu are extensia .jar. Implementarea acestui lucru este că dacă cineva poate schimba numele unui jar plasat într-un director classpath pentru a avea o altă extensie decât .jar. Wildcard (*) nu îl ridică. Această tehnică nu va funcționa cu directorul de extensie.

Să înțelegem procesul de execuție printr-un exemplu.

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

Compilați fișierul A.java. vom arhiva fișierul A.class compilat în A.jar. Plasați acest fișier JAR într-un alt director decât fișierul compilat B.class.

Pentru a demonstra utilizarea căii de clasă, plasăm fișierul A.jar într-un director C:JavaPrograms și vom accesa acel JAR prin wildcard (*) pentru ca B să îl folosească.

Am descoperit că B poate încărca clasa A în timp ce am șters-o din directorul curent. Lansatorul Java a fost căutat în mod explicit pentru C:JavaProgram. De asemenea, este posibil ca clasa să fie încărcată fără prezența acesteia în același director și specificație explicită a căii de clasă.

Este adesea menționat ca un beneficiu al utilizării mecanismului de extensie, deoarece toate aplicațiile care folosesc acel JRE pot vedea aceleași clase fără a fi nevoie să le specifice în mod explicit pe calea clasei.

Ce se întâmplă dacă schimbăm numele lui A.jar în A.backup în același director referit la CLASSPATH. NoClassDefFoundError este întâlnit atunci când facem același lucru, deoarece referința CLASSPATH nu are extensia .jar.

programare round robin