Oprava: Nepodarilo sa nájsť alebo načítať hlavnú triedu

Pri použití príkazu java v príkazovom riadku na spustenie programu Java zadaním názvu triedy v termináli nastane chyba „ Nepodarilo sa nájsť alebo načítať hlavnú triedu “. Dôvod, prečo sa to stane, je väčšinou kvôli chybe programátora pri deklarovaní triedy.

Nepodarilo sa nájsť alebo načítať hlavný príkazový riadok Java

Ako už bolo uvedené vyššie, táto chyba väčšinou nesúvisí so systémom a používateľ urobí chybu v niekoľkých prípadoch, ako je uvedené nižšie. Predtým, ako sa pohneme vpred, predpokladáme, že máte základné znalosti programovacieho jazyka Java a jeho fungovania.

Čo spôsobuje chybu „Nepodarilo sa nájsť alebo načítať hlavnú triedu“ v Java?

Správa „Nepodarilo sa nájsť alebo načítať hlavnú triedu“ znamená, že prvý krok Java modulu, ktorý načíta triedu na vykonanie, zlyhal. Príkaz java nedokázal nájsť triedu v správnom adresári.

V niektorých prípadoch musíte pridať správnu cestu k súboru a nasmerovať terminál Java na správne miesto. Pretože vykonávate príkaz z príkazového riadka, počítač nevie, kde má byť trieda nájdená alebo kde je umiestnená. V cieľových IDE to nie je problém, pretože IDE udržuje ukazovateľ smerujúci k aktuálnemu pracovnému adresáru.

Čo je syntax 'java'?

Predtým, ako začneme odstraňovať problémy, prečo nám terminál vracia chybu pri pokuse o vykonanie, musíme sa najskôr pozrieť na syntax príkazu. Ak nepoužívate správnu syntax, budete musieť túto chybu nevyhnutne čeliť.

Normálna syntax príkazu je niečo podobné:

 java [...] [...] 

Toto je voľba príkazového riadku, je plne kvalifikovaný názov triedy Java a je argumentom príkazového riadku, ktorý sa pri kompilácii celého balíka odovzdá vašej aplikácii.

Príkladom platného príkazu je:

 java -Xmx100m com.acme.example.ListAppuals kevin šípky bart 

Vyššie uvedený príkaz spôsobí, že príkaz java vykoná nasledujúce operácie:

  • Vyhľadá skompilovanú verziu triedy ' com.acme.example.ListAppuals '.
  • Po prehľadaní načíta triedu.
  • Ďalej, keď je trieda načítaná, trieda bude hľadaná „hlavná“ metóda s platným podpisom, modifikátormi a návratovým typom. Vzorová hlavná trieda by bola niečo ako:
 verejné statické prázdno (String []) 
  • Metóda sa bude volať s argumentmi „kevin“, „šípky“ a „bart“ ako reťazec [].

Ako opraviť 'Nepodarilo sa nájsť alebo načítať hlavnú triedu'

Riešenie 1: Kontrola argumentu názvu triedy

Najčastejšou chybou, ktorú urobia používatelia, je skutočnosť, že ako argument poskytujú nesprávny názov triedy (alebo nesprávny názov triedy). Pretože na príkazovom riadku deklarujeme parametre, je veľmi pravdepodobné, že argument názvu triedy odovzdáte v nesprávnej podobe. Tu uvádzame všetky možné scenáre, v ktorých môžete urobiť chybu.

  • Písanie jednoduchého názvu triedy . Ak deklarujete triedu v balíku, napríklad „com.acme.example“, musíte v príkaze Java použiť úplné meno triedy vrátane balíka.
 java com.acme.example.ListAppuals 

namiesto

 java ListAppuals 
  • Namiesto vyhlásenia názvu súboru alebo názvu cesty by ste mali uviesť názov triedy. Java nepreberie triedu, ak pre ňu deklarujete cestu / názov súboru. Medzi nesprávne položky patria:
 java ListAppuals.class java com / acme / example / ListAppuals.class 
  • Mali by sa brať do úvahy obaly. Príkazy Java rozlišujú malé a veľké písmená a ak urobíte chybu len s jedným písmenom, nebudete môcť načítať hlavnú triedu. Príkladom nesprávnych chýb sú:
 java com.acme.example.listappuals 
  • Nemali by ste deklarovať zdrojový názov súboru . Ako už bolo spomenuté vyššie, triedu musíte deklarovať iba v správnom úplnom formáte classname. Príklad chyby je:
 java ListAppuals.java 
  • Táto chyba sa vyskytne aj vtedy, ak urobíte chybu pri písaní alebo zabudnete celé meno triedy napísať .

Ak ste pri deklarovaní názvu triedy urobili nejaké nedbalé chyby, nezabudnite to opraviť a potom skúste spustiť program.

Riešenie 2: Kontrola cesty v triede

Ak ste deklarovali názov triedy správne, ale stále sa zobrazuje chyba, je pravdepodobné, že príkaz java nemôže nájsť zadaný názov triedy na ceste. Cesta triedy je cesta, kde Java runtime vyhľadáva súbory zdrojov a triedy. Cestu triedy môžete ľahko nastaviť pomocou dvoch rôznych príkazov, ako je to znázornené nižšie:

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

Ak chcete získať podrobnejšie informácie o cestovaní po triede, mali by ste si pozrieť nasledujúce dokumenty.

Dokumentácia príkazov Java

Nastavenie cesty triedy

Riešenie 3: Kontrola adresára

Ak deklarujete adresár ako cestu triedy, vždy bude koreňový adresár namespace. Napríklad, ak je na ceste triedy „/ usr / local / acme / classes“, Java vyhľadá triedu „com.acme.example.Appuals“. Vyhľadá triedu s nasledujúcim názvom cesty:

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

Takže v podstate, ak do cesty do triedy vložíte nasledujúcu adresu, jazyk Java nebude môcť nájsť:

 / Usr / local / ABC / triedy / com / ABC / example 

Mali by ste skontrolovať aj podadresár a zistiť, či sa zhoduje s FQN. Ak je vaša trieda FQN „com.acme.example.Appuals“, Java vyhľadá „Appuals.class“ v adresári „com / acme / example“.

Ako príklad uvádzajme nasledujúci scenár:

  • Trieda, ktorú chcete spustiť, je: com.acme.example.Appuals
  • Úplná cesta k súboru je: /usr/local/acme/classes/com/acme/example/Appuals.class
  • Aktuálny pracovný adresár je: / usr / local / acme / classes / com / acme / example /

Potom by nasledovali tieto scenáre:

 # zle, FQN je potrebná java Appuals # zle, v aktuálnom pracovnom adresári java com.acme.example.Appuals # nie je priečinok `com / acme / example`, podobne ako v predchádzajúcom scenári java -classpath. com.acme.example.Appuals # OK; relatívna cesta k triede je nastavená java -classpath ../../ .. com.acme.example.Appuals # OK; je nastavená absolútna cesta triedy java -classpath / usr / local / acme / classes com.acme.example.Appuals 

Poznámka: Cesta triedy musí obsahovať aj všetky ostatné triedy (nesystémové), ktoré vaše aplikácie potrebujú.

Riešenie 4: Kontrola balíka triedy

Ak sú všetky vyššie uvedené riešenia vo vašom prípade pravdivé, musíte sa ubezpečiť, že váš zdrojový kód je umiestnený v správnom priečinku. Tiež ste správne deklarovali balík . Ak spustíte svoj kód pomocou IDE, pravdepodobne vás bude o probléme informovať. Avšak v našom prípade, pretože ho spúšťame v príkazovom riadku, chyba zostane nepovšimnutá a chyba triedy bude predmetom diskusie.

Zaujímavé Články