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

Pogreška " Ne mogu pronaći ili učitati glavnu klasu " pojavljuje se kada se u naredbenom retku koristi Java naredba za pokretanje Java programa navodeći naziv 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

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. Naredba Java nije uspjela locirati klasu u ispravnom direktoriju.

U nekim slučajevima morate dodati ispravnu putanju datoteke i usmjeriti Java terminal na točno 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 natjerat će Java naredbu da izvrši sljedeće operacije:

  • Tražit će kompajliranu verziju klase ' 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 imena 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 jednostavnog naziva razreda . Ako klasu prijavite u paketu kao što je 'com.acme.example', morate upotrijebiti puni naziv klase, uključujući paket u naredbi Java.
java com.acme.example.ListAppuals

umjesto

java ListAppuals
  • Trebali biste proglasiti naziv klase umjesto da deklarirate ime datoteke ili naziv puta. Java ne preuzima klasu ako za nju deklarirate ime puta / datoteke. Netočni unosi uključuju sljedeće:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Treba uzeti u obzir kućište . Java naredbe razlikuju velika i mala slova i ako pogriješite čak i jedno slovo, nećete moći učitati glavnu klasu. Primjer netočnih pogrešaka su:
java com.acme.primjer.listappuali
  • Ne biste trebali deklarirati izvorno ime 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 pogriješite pri tipkanju ili zaboravite u cijelosti napisati naziv klase .

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

Rješenje 2: Provjeravanje staze

Ako ste ispravno proglasili naziv klase, ali i dalje vam se prikazuje pogreška, velika je vjerojatnost da naredba java 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 vidjeti 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
  • Puni put datoteke je: /usr/local/acme/classes/com/acme/example/Appuals.class
  • Trenutni radni direktorij je: / usr / local / vrhunac / nastava / hr / vrhunac / primjer /

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

Napomena: Put predavanja mora uključivati ​​i sve ostale klase (nesustavne) 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 osigurati da je vaš izvorni kod smješten u ispravnu mapu. Također, ispravno ste deklarirali 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.

Preporučeno

Popravak: Minecraft ne reagira
Što je aplikacija za registraciju uređaja za digitalni TV tuner i treba li je ukloniti?
Što je FileRepMalware i biste li ga trebali ukloniti