Popravak: Nije moguće pronaći ili učitati glavnu klasu

Popravak: Nije moguće pronaći ili učitati glavnu klasu

Fix Could Not Find

Greška ' Nije moguće pronaći ili učitati glavnu klasu Javlja se kada se u naredbenom retku koristi naredba java za pokretanje Java programa navođenjem naziva klase u terminalu. Razlog zašto se to događa uglavnom je zbog programske pogreške korisnika prilikom deklariranja klase.



Ne mogu pronaći ili učitati glavnu klasu u naredbenom retku Java

Ne mogu pronaći ili učitati naredbenu liniju glavne klase - Java



Kao što je već spomenuto, ova pogreška uglavnom nije povezana sa sustavom i korisnik pogriješi u nekoliko scenarija kao što je prikazano u nastavku. Prije nego što krenemo naprijed, pretpostavljamo da imate osnovno znanje o programskom jeziku Java i kako on funkcionira.

Što uzrokuje pogrešku 'Ne mogu pronaći ili učitati glavnu klasu' na Javi?

Poruka ‘Ne mogu pronaći ili učitati glavnu klasu’ znači da prvi korak Java mehanizma za preuzimanje klase za izvršenje nije uspio. The java naredba nije bio u mogućnosti pronaći klasa u ispravnom direktoriju.



U nekim slučajevima morate dodati ispravan put do datoteke i usmjerite Java terminal na ispravno mjesto. Budući da izvršavate naredbu s terminala naredbenog retka, računalo ne zna gdje se klasa može naći ili gdje se nalazi. U ciljanim IDE-ima to nije problem jer IDE drži pokazivač usmjeren prema trenutnom radnom direktoriju.

Što je sintaksa 'java'?

Prije nego što započnemo s rješavanjem problema zašto nam terminal vraća pogrešku prilikom pokušaja izvršavanja, prvo moramo pogledati sintaksu naredbe. Ako ne upotrebljavate ispravnu sintaksu, neizbježno ćete se suočiti s ovom pogreškom.

Uobičajena sintaksa naredbe je otprilike ovako:



java [...] [...]

Ovdje je opcija naredbenog retka, potpuno je kvalificirano ime klase Java i argument naredbenog retka koji se prosljeđuje vašoj aplikaciji kad se cijeli paket kompajlira.

Primjer važeće naredbe je:

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

Gornja naredba učinit će da naredba java izvrši sljedeće operacije:

  • Tražit će kompiliranu verziju razreda ' com.acme.example.ListAppuals '.
  • Nakon pretraživanja učitat će razred.
  • Dalje, kad se učita klasa, tražit će se klasa 'glavna' metoda s važećim potpisom, modifikatorima i vrnutom vrstom. Primjer glavne klase bio bi nešto poput:
javna statička void glavna (String [])
  • Metoda će se pozivati ​​s argumentima 'kevin', 'strelice' i 'bart' kao niz [].

Kako popraviti 'Nije moguće pronaći ili učitati glavnu klasu'

Rješenje 1: Provjera argumenta naziva klase

Najčešća pogreška koju korisnici čine je da kao argument daju pogrešno ime klase (ili je točan naziv klase pogrešan oblik). Budući da deklariramo parametre na naredbenom retku, velika je vjerojatnost da ćete proslijediti argument klase u pogrešnom obliku. Ovdje ćemo navesti sve moguće scenarije u kojima možete pogriješiti.

  • Pisanje a jednostavan naziv klase . Ako klasu prijavite u paketu kao što je ‘com.acme.example’, morate koristiti puni naziv klase uključujući paket u naredbi Java.
java com.acme.example.ListAppuals

umjesto

java ListAppuals
  • Trebao bi proglasiti ime klase umjesto deklariranja imena datoteke ili puta. Java ne preuzima klasu ako za nju deklarirate ime puta / datoteke. Netočno unosi uključuju sljedeće:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Kućište treba uzeti u obzir. Java naredbe razlikuju velika i mala slova i ako pogriješite makar jedno slovo, nećete moći učitati glavnu klasu. Primjer za netočne pogreške su:
java com.acme.primjer.listappuali
  • Vas ne bi trebao izjaviti da naziv izvorne datoteke . Kao što je već spomenuto, klasu morate prijaviti samo u ispravnom formatu punog naziva klase. Primjer pogreške je:
java ListAppuals.java
  • Ova će se pogreška dogoditi i ako napravite greška u tipkanju ili zaboravite u cijelosti napisati naziv razreda .

Ako ste napravili bilo kakve neuredne pogreške u deklaraciji naziva klase, pobrinite se da ga popravite i pokušajte pokrenuti program.

Rješenje 2: Provjeravanje staze

Ako ste ispravno deklarirali naziv klase, ali i dalje vam se prikazuje pogreška, velika je vjerojatnost da java naredba nije mogla pronaći navedeno ime klase na putu. Put klasa je put na kojem Java runtime traži datoteke resursa i klase. Put puta možete jednostavno postaviti pomoću dvije različite naredbe kao što je prikazano dolje:

C:> sdkTool -classpath classpath1; classpath2 ... C:> set CLASSPATH = classpath1; classpath2 ...

Da biste dobili bolji uvid u put predavanja, trebali biste provjeriti sljedeće dokumente.

Java naredbena dokumentacija

Postavljanje puta predavanja

Rješenje 3: Provjera direktorija

Kada deklarirate direktorij kao put do klase, uvijek će odgovarati korijenu prostora imena. Na primjer, ako je “/ usr / local / acme / classes” na putu predavanja, tada će Java tražiti klasu “com.acme.example.Appuals”. Tražit će klasu sa sljedećim imenom puta:

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

Dakle, u osnovi ako stavite sljedeću adresu u put predavanja, Java neće moći pronaći razred:

/ usr / local / acme / classes / com / acme / example

Također biste trebali provjeriti svoj poddirektorij i provjerite odgovara li FQN-u. Ako je FQN vaših klasa 'com.acme.example.Appuals', tada će Java tražiti 'Appuals.class' u direktoriju 'com / acme / example'.

Da bismo vam dali primjer, pretpostavimo sljedeći scenarij:

  • Klasa koju želite pokrenuti je: com.acme.example.Appuals
  • The puni put datoteke je: /usr/local/acme/classes/com/acme/example/Appuals.class
  • The trenutni radni direktorij je: / usr / local / acme / classes / com / acme / example /

Tada bi vrijedili sljedeći scenariji:

# pogrešno, potreban je FQN java Appuals # pogrešno, u trenutnom radnom direktoriju java com.acme.example.Appuals # pogrešno nema mape `com / acme / example`. Apppuals # pogrešno, slično gornjem scenariju java -classpath. com.acme.example.Appuals # OK; postavljen je relativni put klase java -classpath ../../ .. com.acme.example.Appuals # OK; postavlja se apsolutni put do klase java -classpath / usr / local / acme / classes com.acme.example.Appuals

Bilješka: Put predavanja također mora uključivati ​​sve ostale razrede (nesistemske) koje su potrebne vašim aplikacijama.

Rješenje 4: Provjera paketa klasa

Ako sva gore navedena rješenja vrijede u vašem slučaju, morate biti sigurni da je vaš izvorni kod smješten u ispravnu mapu. Također, ispravno ste proglasili paket . Ako kôd pokrenete s IDE-om, vjerojatno će vas obavijestiti o problemu. Međutim, u našem slučaju, budući da je pokrećemo u naredbenom retku, pogreška će ostati nezapažena i dobit ćete diskusiju o grešci klase.

4 minute čitanja