Je velmi běžné čelit chybám a výjimkám v programovacím jazyce Java. Ale některým z nejpopulárnějších a běžných chyb často čelí programátoři, kteří jsou v programování noví. Mezi tyto chyby patří nemohl najít nebo načíst hlavní třídu v Javě, je jedním z nich, který se běžně vyskytuje. Chyba naznačuje, že příkaz java nepodařilo najít nebo načíst hlavní třídu . Objevuje se, když se snažíme spustit program. Když dojde k chybě, JVM zobrazí na konzole následující chybovou zprávu:
Error: Could not find or load main class ClassName
Chyba je většinou generována, když nesprávně zadáme název třídy za běhu programu.
Důvody k chybě
Chyba se generuje, protože JVM selže načtení hlavní třídy nebo názvu balíčku. Existuje několik dalších důvodů, které generují stejnou chybu:
- Třída byla deklarována ve špatném balíčku.
- Chybí závislosti v CLASSPATH.
- Cesta podadresáře neodpovídá plně kvalifikovanému názvu.
- Na CLASSPATH je nesprávný adresář.
- CLASSPATH aplikace je nesprávně zadána.
- Také se vyskytuje, když jsme udělali chybu s argumentem názvu třídy.
Řešení chyby
Abychom se vyhnuli chybě nebo ji vyřešili, musíme zadat absolutní název balíčku nebo název třídy.
Bez balíčku
Hlavní třída je třída, ve které je definována metoda main(). Vytvořme program, který vygeneruje a zobrazí chybu na konzoli.
DemoClass.java
java webové služby
public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //using console to input data from user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
Výstup:
Vidíme, že výše uvedený program se úspěšně zkompiluje a spustí. Vygenerujme tu chybu nemohl najít nebo načíst hlavní třídu ve výše uvedeném programu. Pro vygenerování a zobrazení chyby máme špatně napsané název třídy při psaní Jáva příkaz Java DemoClas .
K tomu také dochází, když specifikujeme .třída přípona na konci názvu třídy.
java DemoClass.class
Aby nedošlo k chybě, nepište .třída přípona na konci názvu třídy při použití Jáva příkaz.
java DemoClass
Chyba také nastane, když třídu neumístíme do správné složky. Na následujícím obrázku nejsme uvnitř demo složku, kde se třída nachází. Znamená to DemoClass.class soubor musí být v adresáři C:demo .
S Balíčkem
Ve výše uvedeném programu vytvoříme balíček s názvem com.javatpoint . To znamená, že při kompilaci následujícího Java programu se uvnitř vygeneruje soubor .class C:democomjavatpointDemoClass.class .
DemoClass.java
package com.javatpoint; public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //reading a string from the user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
Výstup:
Pamatujte, že pokud je třída uvnitř balíčku, musíme v příkazu java použít celý název třídy, včetně názvu balíčku.