CLASSPATH: CLASSPATH on ympäristömuuttuja, jota Application ClassLoader käyttää .class-tiedostojen paikallistamiseen ja lataamiseen. CLASSPATH määrittää polun, jolla etsitään kolmannen osapuolen ja käyttäjän määrittämiä luokkia, jotka eivät ole Java-alustan laajennuksia tai osa. Sisällytä kaikki hakemistot, jotka sisältävät .class- ja JAR-tiedostoja, kun määrität CLASSPATH:n.
Sinun on asetettava CLASSPATH, jos:
mysql lisää
- Sinun on ladattava luokka, jota ei ole nykyisessä hakemistossa tai missään alihakemistossa.
- Sinun on ladattava luokka, joka ei ole laajennusmekanismin määrittämässä paikassa.
CLASSPATH riippuu siitä, mitä CLASSPATH-asetusta asetat. CLASSPATH:n lopussa on hakemiston tai tiedoston nimi. Seuraavat kohdat kuvaavat CLASSPATHin lopun.
- Jos tiedosto on JAR tai zip, tiedosto sisältää luokkatiedostoja, CLASSPATH päättyy zip- tai JAR-tiedoston nimeen.
- Jos luokkatiedostot sijoitetaan nimettömään pakettiin, CLASSPATH päättyy hakemistoon, joka sisältää luokkatiedostot.
- Jos luokkatiedostot sijoitetaan nimettyyn pakettiin, CLASSPATH päättyy hakemistoon, joka sisältää juuripaketin koko paketin nimessä, joka on ensimmäinen paketti koko paketin nimellä.
CLASSPATH:n oletusarvo on piste (.). Se tarkoittaa ainoaa nykyistä haettua hakemistoa. CLASSPATH-oletusarvo ohittaa, kun asetat CLASSPATH-muuttujan tai käytät -classpath-komentoa (lyhennettynä -cp). Laita piste (.) uuteen asetukseen, jos haluat sisällyttää nykyisen hakemiston hakupolkuun.
Jos CLASSPATH löytää luokkatiedoston, joka on nykyisessä hakemistossa, se lataa luokan ja käyttää sitä riippumatta siitä, minkä nimen luokka esiintyy toisessa hakemistossa, joka myös sisältyy CLASSPATHiin.
Jos haluat määrittää useita luokkapolkuja, sinun on erotettava jokainen CLASSPATH puolipisteellä (;).
Kolmannen osapuolen sovellukset (MySQL ja Oracle), jotka käyttävät JVM:ää, voivat muokata CLASSPATH-ympäristömuuttujaa sisältämään käyttämänsä kirjastot. Luokat voidaan tallentaa hakemistoihin tai arkistotiedostoihin. Java-alustan luokat tallennetaan tiedostoon rt.jar.
CLASSPATH voidaan asettaa kahdella tavalla: komentokehotteella tai ympäristömuuttujan avulla.
Katsotaanpa, kuinka MySQL-tietokannan CLASSPATH asetetaan:
Vaihe 1: Napsauta Windows-painiketta ja valitse Ohjauspaneeli. Valitse Järjestelmä.
Vaihe 2: Klikkaa Järjestelmän lisäasetukset .
Vaihe 3: Valintaikkuna avautuu. Napsauta Ympäristömuuttujat.
Vaihe 4: Jos CLASSPATH on jo järjestelmämuuttujissa, napsauta Muokkaa-painiketta ja lisää puolipiste (;) sen loppuun. Liitä MySQL-Connector Java.jar-tiedoston polku.
Jos CLASSPATH ei ole järjestelmämuuttujissa, napsauta Uusi-painiketta ja kirjoita muuttujan nimi muotoon CLASSPATH ja muuttujan arvo muotoon C:Program FilesJavajre1.8MySQL-Connector Java.jar;.;
muuntaminen tupla-javaksi
Muista: Laita ;.; CLASSPATHin lopussa.
Ero PATH:n ja CLASSPATHin välillä
PATH | CLASSPATH |
---|---|
PATH on ympäristömuuttuja. | CLASSPATH on myös ympäristömuuttuja. |
Käyttöjärjestelmä käyttää sitä suoritettavien tiedostojen (.exe) etsimiseen. | Application ClassLoader käyttää sitä .class-tiedoston paikallistamiseen. |
Sinun on lisättävä hakemisto, joka sisältää .exe-tiedostoja. | Sinun on sisällytettävä kaikki hakemistot, jotka sisältävät .class- ja JAR-tiedostoja. |
Kun PATH-ympäristömuuttuja on asetettu, sitä ei voi ohittaa. | CLASSPATH-ympäristömuuttuja voidaan ohittaa käyttämällä komentorivin valitsinta -cp tai -CLASSPATH sekä javac- että java-komentoihin. |
Kuinka asettaa CLASSPATH Windowsissa komentokehotteen avulla
Kirjoita seuraava komento komentokehotteeseen ja paina enter.
set CLASSPATH=%CLASSPATH%;C:Program FilesJavajre1.8 t.jar;
Yllä olevassa komennossa The set on sisäinen DOS-komento, jonka avulla käyttäjä voi muuttaa muuttujan arvoa. CLASSPATH on muuttujan nimi. Prosenttimerkin (%) sisällä oleva muuttuja on olemassa oleva ympäristömuuttuja. Puolipiste on erotin, ja (;) -merkin jälkeen on rt.jar-tiedoston PATH.
merkkijono char javaan
Miten ext-kansio toimii Javassa
Ext-hakemisto toimii vähän kuin CLASSPATH. ext-hakemisto on osa luokan latausmekanismia. Luokat, jotka ovat saatavilla ulkoisen hakemiston JAR:issa, ovat Java-sovellusten käytettävissä.
Seuraava taulukko osoittaa CLASSPATHin ja laajennusmekanismin välisen keskeisen eron:
Ominaisuudet | CLASSPATH | Laajennusmekanismi |
---|---|---|
Luokan latausjärjestys | CLASSPATH latautuu bootstrapin ja laajennuksen lataamisen jälkeen. | ext lataa bootstrap-latauksen jälkeen, mutta ennen CLASSPATH-latausta. |
Laajuus | Se on sovelluskohtainen. Kaikki isäntäkoneen JRE:t ovat CLASSPATH-ympäristömuuttujia. | Kaikki JVM:t toimivat tietyssä JRE:ssä java.ext.dirs. |
Paketin nimi | java.class.path käytetään luokkatiedostoja sisältävien hakemistojen ja JAR-arkistojen etsimiseen. | java.ext.dirs käytetään määrittämään, missä laajennusmekanismi lataa luokkia. |
Erittely | Se määritellään nimellä, mukaan lukien laajennus.jar ja hakemisto, joka sisältää .class-tiedostoja. | Kaikki määritetyissä hakemistoissa olevat JAR-tiedostot ladataan. |
Mekanismi poimii kaikki .jar-tiedostot laajennushakemistosta, vaikka tiedostolla ei olisi .jar-tunnistetta. Tämän toteutus on, että jos voidaan muuttaa luokkapolkuhakemistoon sijoitetun jarin nimi, jolla on jokin muu pääte kuin .jar. Jokerimerkki (*) ei poimi sitä. Tämä tekniikka ei toimi laajennushakemiston kanssa.
Ymmärretään suoritusprosessi esimerkin kautta.
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()); } }
Kääntää A.java-tiedosto. arkistoimme kootun A.class-tiedoston A.jariin. Sijoita tämä JAR-tiedosto toiseen hakemistoon kuin käännetty B.class-tiedosto.
Havainnollistaaksemme luokkapolun käyttöä asetamme A.jar-tiedoston hakemistoon C:JavaPrograms ja käytämme tätä JAR:ia jokerimerkillä (*) B:tä varten.
Huomasimme, että B voi edelleen ladata A.luokan, vaikka olimme poistaneet sen nykyisestä hakemistosta. Java-käynnistintä etsittiin nimenomaisesti C:JavaProgram. On myös mahdollista ladata luokka ilman sen läsnäoloa samassa hakemistossa ja eksplisiittisessä luokkapolun määrittelyssä.
Sitä kutsutaan usein laajennusmekanismin käytön eduksi, koska kaikki tätä JRE:tä käyttävät sovellukset voivat nähdä samat luokat ilman, että niitä tarvitsee erikseen määrittää luokkapolulla.
Mitä tapahtuu, jos muutamme A.jarin nimen A.backupiksi samassa CLASSPATH-viittaushakemistossa. NoClassDefFoundError kohdataan, kun teemme samoin, koska CLASSPATH-viittauksessa ei ole .jar-tunnistetta.
len of array javassa