Zelo pogosto se soočamo z napakami in izjemami v programskem jeziku Java. Toda programerji, ki so začetniki v programiranju, se pogosto srečujejo z nekaterimi najbolj priljubljenimi in pogostimi napakami. Med temi napakami ni mogel najti ali naložiti glavnega razreda v Javi, je eden izmed njih, ki se običajno pojavlja. Napaka kaže, da je java ukaz ni uspelo za iskanje ali nalaganje glavnega razreda . Pojavi se, ko poskušamo zagnati program. Ko pride do napake, JVM prikaže naslednje sporočilo o napaki na konzoli:
Error: Could not find or load main class ClassName
Napaka se večinoma ustvari, ko v času izvajanja programa napačno podamo ime razreda.
Razlogi za nastanek napake
Napaka nastane, ker JVM ne uspe naložiti glavnega razreda ali imena paketa. Obstaja nekaj drugih razlogov, ki ustvarjajo isto napako, in sicer:
- Razred je bil prijavljen v napačnem paketu.
- V CLASSPATH manjkajo odvisnosti.
- Pot podimenika se ne ujema s polnim imenom.
- Na CLASSPATH je napačen imenik.
- CLASSPATH aplikacije ni pravilno določen.
- Pojavi se tudi, ko smo naredili napako z argumentom imena razreda.
Rešitev napake
Da bi se izognili ali odpravili napako, moramo podati absolutno ime paketa ali ime razreda.
Brez paketa
Glavni razred je razred, v katerem je definirana metoda main(). Ustvarimo program, ki ustvari in prikaže napako na konzoli.
DemoClass.java
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); } }
Izhod:
Vidimo, da se zgornji program uspešno prevede in zažene. Ustvarimo napako, ki ni mogel najti ali naložiti glavnega razreda v zgornjem programu. Za ustvarjanje in prikaz napake imamo napačno črkovano ime razreda med tipkanjem java ukaz java DemoClas .
Pojavi se tudi, ko določimo .razred razširitev na koncu imena razreda.
java DemoClass.class
Da se izognete napaki, ne pišite .razred razširitev na koncu imena razreda med uporabo java ukaz.
java DemoClass
Napaka se pojavi tudi, ko razreda ne umestimo v pravo mapo. Na naslednji sliki nismo znotraj demo mapo, kjer se nahaja razred. To pomeni DemoClass.class datoteka mora biti znotraj imenika C:demo .
S paketom
V zgornjem programu ustvarimo paket z imenom com.javatpoint . To pomeni, da bo pri prevajanju naslednjega programa Java datoteka .class ustvarjena znotraj 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); } }
Izhod:
Ne pozabite, da če je razred znotraj paketa, moramo v ukazu java uporabiti polno ime razreda, vključno z imenom paketa.