Eikö pääluokan Java löytynyt tai ladattu? Näin voit korjata sen!

Eikö pääluokan Java löytynyt tai ladattu? Näin voit korjata sen!

Jos saat pääluokan ei löydetty virheen Java -projektissasi ilman ilmeistä syytä, älä huoli, et ole yksin.





Yksi ennakoimattomimmista ja spontaaneimmista virheistä, kiitos JVM: n (Java Virtual Machine) taipumuksen pysyä oletusluokkaradassa, 'pääluokka ei löydy' -ongelma kummittelee sekä harrastajia että ammattilaisia.





Mutta tämä ongelma on itse asiassa vähemmän pelottava kuin miltä se näyttää. Lue, miten voit päästä eroon tästä virheestä lopullisesti.





Miksi pääluokkaa ei löydetty?

Ennen kuin yritämme ymmärtää, miten ja miksi JVM ei löytänyt pääluokkaa, meidän on ymmärrettävä käsite Luokkareitti Javassa.

Mikä on Classpath?

Luokkapolku on tiedostopolku, jonka Java -ajonaikainen ympäristö etsii luokkia ja muita resurssitiedostoja. Se voidaan asettaa käyttämällä joko -luokkareitti vaihtoehtoa suoritettaessa ohjelmaa tai asetettaessa järjestelmää CLASSPATH ympäristömuuttuja.



Kuten nimestä voi päätellä, se on yksinkertaisesti tiedostopolku, jossa .luokka tiedostot löytyvät JDK -paketista tai hakemistosta.

Kun JVM ei löydä pääluokkaa, se johtuu usein siitä, että se etsii vastaavaa .luokka tiedostot väärällä luokkareitillä. Tietenkin tapa korjata tämä ongelma on määrittää luokkapolku manuaalisesti joko pakettien avulla tai määrittämällä luokkareitti.





Tässä vaiheessa, jos haluat päivittää muistisi Java -luokista, tutustu oppaaseemme luokkien luominen Javalla .

jumissa lentokonetilassa Windows 10

Pakettien käyttäminen

Luodaan luokka nimeltä Testata . Aseta se pakettiin nimeltä testPackage . Java -paketteja käytetään vastaavien luokkien ryhmittelyyn tai luokkien yksilöllisen nimitilan tarjoamiseen.





Tässä yksinkertaisessa esimerkissä paketin käyttäminen auttaa sinua visualisoimaan, kuinka Java -luokan polku toimii. Tiedostonhallintasovelluksessa paketti esitetään itsenäisenä kansiona.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

Avaa nyt uusi pääte ja varmista, että työhakemisto on sama kuin se, joka sisältää pakettikansion. Voit muuttaa työhakemistoa käyttämällä CD komento millä tahansa käyttöjärjestelmällä.

Koota Testaa.java suorittamalla seuraava komento:

package testPackage;
javac testPackage/Test.java

Tämä tallentaa kootun binaaritiedoston (.class -tiedoston) testPackage -tiedostoon.

Jos haluat suorittaa käännetyn luokan, sinun on kirjoitettava komentoriville luokan täydellinen nimi. Java -luokan täysin pätevä nimi viittaa sen nimeen, jossa on paketin nimi. Tässä tapauksessa tämän pitäisi näyttää tältä:

java testPackage.Test

Tämä tapa kutsua luokkatiedostoja varmistaa myös, että voit soittaa suoritettavia tiedostoja eri paketeista samasta työhakemistosta. Sinun tarvitsee vain muuttaa luokan täydellistä nimeä.

Kehittyneemmissä toteutuksissa suosittelemme, että luot erilliset alikansiot luokillesi ja lähdetiedostoillesi, jotta voit hallita paremmin paketin tiedostoja.

Luokan polun määrittäminen manuaalisesti

Suositeltava tapa hallita java -tiedostojasi on luoda erilliset hakemistot lähdetiedostoille ja luokille. Jos työskentelet projektin parissa, olet todennäköisesti jo tekemässä tätä.

Perinteisesti hakemistossa lähdetiedostot on merkitty src ja .class -tiedostoja sisältävä tiedosto on merkitty nimellä luokat. Tämä on myös tapa varmistaa, että todennäköisyys, että JVM ei löydä pääluokkaa, vähenee merkittävästi oikein rakennetun hakemiston vuoksi.

Jos käytämme tätä menetelmää, tältä näyttää hakemistorakenne ennen kääntämistä:

windows 10 system_service_exception
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Jokainen yllä olevan kuvan sisennys vastaa yhtä tiedostohierarkian tasoa, jota projektisi tulee noudattaa.

Tämän kääntämiseksi varmista, että työhakemisto on myFolder. Kirjoita nyt seuraava komento:

javac -d classes src/testPackage/Test.java

The .luokka suoritettava tiedosto on tallennettava myFolder/luokat/testipaketti . Tiedostohakemistorakenne näyttää siis tältä: | _+_ |

Ajaa .luokka Suorita Java -komento luokan täydellisellä nimellä ja määritä paikallinen luokan polku. Jokainen polku ilmoitetaan suhteessa työhakemistoon, joka tässä tapauksessa on myFolder.

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

Tämän komennon suorittamisen pitäisi antaa sinulle haluttu lähtö. Mutta miksi yksinkertaisen virheen ratkaisemiseksi tarvitaan niin paljon uudelleenjärjestelyjä?

Tiedostojen järjestämisen merkitys Javassa

Syy, miksi pääluokkaa ei löydy tai ladata, heitetään, koska JVM ei löytänyt sijaintiasi .luokka tiedostoja tallennettiin.

Helpoin tapa ratkaista tämä virhe on valvoa, missä .class -tiedostot on tallennettu, ja pyytää JVM: ää etsimään sinne. Tämä on mahdollista järjestämällä lähdetiedostot ja suoritettavat tiedostot erikseen ja hallitsemalla kaikkea työhakemistosta.

Kun alat lisätä rakenteita, kuten perintö projektiisi, tiedostojärjestelmän monimutkaisuus varmasti lisää moninaisuutta. Tällaisissa projekteissa tai jopa niissä, joissa vaaditaan JAR -tiedostojen tai mukautettujen kirjastojen käyttöä, yksinkertainen tiedostojen erottaminen ja hallinta voi säästää lukemattomia tunteja vianmääritystä ja virheenkorjausta.

Jos haluat lukea lisää siitä, miten luontopolku toimii Javassa ja lukuisista asioista, joita voit hallita koodin suorittamisessa, voit myös tutustua Oraclen yksityiskohtainen ja käyttäjäystävällinen viite .

Jaa Jaa Tweet Sähköposti 10 parasta aloittelijaprojektia uusille ohjelmoijille

Haluatko oppia ohjelmointia, mutta et tiedä mistä aloittaa? Nämä aloittelijoiden ohjelmointiprojektit ja opetusohjelmat aloittavat sinut.

MacBook ei voi muodostaa yhteyttä wifi -verkkoon
Lue seuraava Liittyvät aiheet
  • Ohjelmointi
  • Java
Kirjailijasta Yash Chellani(10 artikkelia julkaistu)

Yash on pyrkivä tietotekniikan opiskelija, joka rakastaa rakentaa asioita ja kirjoittaa kaikesta tekniikasta. Vapaa -ajallaan hän tykkää pelata squashia, lukea uusimman Murakamin kopion ja metsästää lohikäärmeitä Skyrimissä.

Lisää Yash Chellanilta

tilaa uutiskirjeemme

Liity uutiskirjeeseemme saadaksesi teknisiä vinkkejä, arvosteluja, ilmaisia ​​e -kirjoja ja ainutlaatuisia tarjouksia!

Klikkaa tästä tilataksesi