Korjaus: Pääluokkaa ei löytynyt tai ladattu



Kokeile Instrumenttia Ongelmien Poistamiseksi

Virhe ' Pääluokkaa ei löytynyt tai ladattu ’Tapahtuu, kun käytetään Java-komentoa komentokehotteessa Java-ohjelman käynnistämiseen määrittämällä luokan nimi päätelaitteeseen. Syy miksi näin tapahtuu, johtuu lähinnä käyttäjän ohjelmointivirheestä luokkaa ilmoitettaessa.



Pääluokkaa ei löytynyt tai ladattu Java-komentoriviltä

Pääluokan Java-komentoriviä ei löytynyt tai ladattu



Kuten aiemmin mainittiin, tämä virhe ei useimmiten liity järjestelmään ja käyttäjä tekee virheen useissa tilanteissa, kuten alla on esitetty. Ennen eteenpäin siirtymistä oletamme, että sinulla on perustiedot Java-ohjelmointikielestä ja sen toiminnasta.



Mikä aiheuttaa virheen ”Ei löydy tai ladata pääluokkaa” Javassa?

Viesti ”Ei löydy tai ladata pääluokkaa” tarkoittaa, että Java-moottorin ensimmäinen vaihe luokan noutamiseksi epäonnistui. java-komento ei pystynyt paikantaa luokka oikeassa hakemistossa.

Joissakin tapauksissa sinun on lisättävä oikea tiedostopolku ja osoita Java-päätelaite oikeaan paikkaan. Koska suoritat komennon komentorivipäätteestä, tietokone ei tiedä, mistä luokka löytyy tai missä se sijaitsee. Kohdennetuissa IDE-tiedostoissa tämä ei ole ongelma, koska IDE pitää osoittimen osoittamassa nykyistä työhakemistoa.

Mikä on java-syntakse?

Ennen kuin aloitamme vianmäärityksen, miksi pääte palauttaa meille virheen yritettäessä suorittaa, meidän on ensin tarkasteltava komennon syntaksia. Jos et käytä oikeaa syntaksia, kohtaat tämän virheen väistämättä.



Komennon normaali syntaksi on jotain tällaista:

java [...] [...]

Tässä on komentorivivaihtoehto, se on täysin määritelty Java-luokan nimi ja komentoriviargumentti, joka välitetään sovelluksellesi, kun koko paketti käännetään.

Esimerkki kelvollisesta komennosta on:

java -Xmx100m com.acme.example.ListAppuals kevin nuolet bart

Yllä oleva komento saa java-komennon suorittamaan seuraavat toiminnot:

  • Se etsii koottua versiota luokassa ” com.acme.example.ListAppuals '.
  • Haun jälkeen se lataa luokan.
  • Seuraavaksi, kun luokka ladataan, luokalle haetaan päämenetelmää, jolla on kelvollinen allekirjoitus, muokkaajat ja palautustyyppi. Näyte pääluokasta olisi jotain:
public staattinen void main (String [])
  • Menetelmää kutsutaan argumentteina ”kevin”, ”nuolet” ja ”bart” merkkijonona [].

Kuinka korjata 'Pääluokkaa ei löydy tai ladata'

Ratkaisu 1: Tarkista luokan nimen argumentti

Yleisin käyttäjien tekemä virhe on, että he antavat argumenttina väärän luokan nimen (tai oikea luokan nimi on väärä muoto). Koska ilmoitamme parametreja komentorivillä, on erittäin todennäköistä, että välität luokan nimen argumentin väärässä muodossa. Tässä luetellaan kaikki mahdolliset skenaariot, joissa voit tehdä virheen.

  • Kirjoittaminen a yksinkertainen luokan nimi . Jos ilmoitat luokan paketissa, kuten ”com.acme.example”, sinun on käytettävä koko luokan nimi mukaan lukien paketti Java-komentoon.
java com.acme.example.ListAppuals

sijasta

java ListAppuals
  • Sinun pitäisi julista luokan nimi tiedostonimen tai polun nimen ilmoittamisen sijaan. Java ei noudata luokkaa, jos ilmoitat sille polun / tiedostonimen. väärä merkinnät sisältävät seuraavat:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Kotelo tulisi ottaa huomioon. Java-komennot erottavat kirjainkoon, ja jos teet virheen edes yhdestä kirjaimesta, et voi ladata pääluokkaa. Esimerkki virheellisiä virheitä ovat:
java com.acme.example.listappuals
  • Sinä ei pitäisi julistaa lähdetiedostonimi . Kuten aiemmin mainittiin, sinun on ilmoitettava luokka vain oikeassa koko luokan nimimuodossa. Esimerkki virheestä on:
java ListAppuals.java
  • Tämä virhe ilmenee myös, jos teet kirjoitusvirhe tai unohda kirjoittaa luokan nimi kokonaan .

Jos olet tehnyt huolimattomia virheitä ilmoittaessasi luokan nimen, varmista, että olet korjannut sen ja yritä sitten käynnistää ohjelma.

Ratkaisu 2: Luokkatien tarkistus

Jos olet ilmoittanut luokan nimen oikein, mutta virhe näkyy edelleen, on todennäköistä, että java-komento ei löytänyt määritettyä luokkanimeä polulta. Classpath on polku, jolla Java ajonaikainen etsii resurssi- ja luokan tiedostoja. Voit helposti asettaa luokan polun kahdella eri komennolla alla olevan kuvan mukaisesti:

C:> sdkTool -luokan polku luokka1; luokka polku2 ... C:> aseta CLASSPATH = luokka polku1; luokka polku2 ...

Saadaksesi enemmän tietoa luokkatiedosta, sinun kannattaa tarkistaa seuraavat asiakirjat.

Java-komentojen dokumentaatio

Luokkatien asettaminen

Ratkaisu 3: Hakemiston tarkistus

Kun ilmoitat hakemiston luokan poluksi, se vastaa aina nimitilan juurta. Esimerkiksi jos “/ usr / local / acme / class” on luokkapolulla, Java etsii luokkaa ”com.acme.example.Appuals”. Se etsii luokan, jolla on seuraava polun nimi:

/usr/local/acme/classes/com/acme/example/Appuals.class

Joten jos lisäät seuraavan osoitteen luokkatielle, Java ei löydä luokkaa:

/ usr / local / acme / class / com / acme / esimerkki

Sinun tulisi myös tarkistaa alihakemisto ja katso, vastaako se FQN: tä. Jos luokkien FQN on 'com.acme.example.Appuals', Java etsii hakemistoa 'Appuals.class' hakemistosta 'com / acme / example'.

Oletetaan seuraava esimerkki antamalla sinulle esimerkki:

  • Luokka, jonka haluat suorittaa, on: com.acme.example.Appuals
  • koko tiedostopolku on: /usr/local/acme/classes/com/acme/example/Appuals.class
  • nykyinen työkirja on: / usr / local / acme / class / com / acme / example /

Sitten seuraavat skenaariot olisivat voimassa:

# väärä, FQN tarvitaan java Appuals # väärä, nykyisessä työkansiossa java com.acme.example.Appuals # väärä ei ole `com / acme / example`-kansiota, samanlainen kuin yllä olevassa skenaariossa java -classpath. com.acme.example.Appuals # OK; suhteellinen luokan polku on asetettu java -classpath ../../ .. com.acme.example.Appuals # OK; absoluuttinen luontopolku on asetettu java -classpath / usr / local / acme / class com.acme.example.Appuals

merkintä: Luokkatien tulee sisältää myös kaikki muut luokat (muut kuin järjestelmät), joita sovelluksesi tarvitsevat.

Ratkaisu 4: Luokkapaketin tarkistus

Jos kaikki yllä olevat ratkaisut pitävät paikkansa tapauksessasi, sinun on varmistettava, että lähdekoodisi on asetettu oikeaan kansioon. Lisäksi olet ilmoittanut oikein paketti . Jos suoritat koodisi IDE: llä, se todennäköisesti ilmoittaa asiasta sinulle. Koska kuitenkin käytämme sitä komentokehotteessa, virhe jää huomaamatta ja saat keskusteltavan luokan virheen.

4 minuuttia luettu