Det er svært vanlig å møte feil og unntak i programmeringsspråket Java. Men noen av de mest populære og vanlige feilene blir ofte møtt av programmerere som er nye innen programmering. Blant disse feilene, kunne ikke finne eller laste inn hovedklassen i Java, er en av dem som forekommer vanligvis. Feilen indikerer at java kommando mislyktes for å finne eller laste inn hovedklassen . Det oppstår når vi prøver å kjøre et program. Når feilen oppstår, viser JVM følgende feilmelding på konsollen:
Error: Could not find or load main class ClassName
Feilen genereres for det meste når vi feil spesifiserer klassenavnet ved kjøretidspunktet for programmet.
Årsaker til å oppstå feil
Feilen genereres fordi JVM klarer ikke å laste inn hovedklassen eller pakkenavnet. Det er noen andre årsaker som genererer den samme feilen, som følger:
- Klassen har blitt deklarert i feil pakke.
- Avhengigheter mangler i CLASSPATH.
- Underkatalogbanen samsvarer ikke med det fullstendige navnet.
- Feil katalog er på CLASSPATH.
- CLASSPATH for applikasjonen er feil spesifisert.
- Oppstår også når vi har gjort en feil med klassenavnargumentet.
Løsning på feilen
For å unngå eller løse feilen, må vi spesifisere det absolutte pakkenavnet eller klassenavnet.
Uten pakke
Hovedklassen er en klasse der main()-metoden er definert. La oss lage et program som genererer og viser en feil på konsollen.
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); } }
Produksjon:
Vi ser at programmet ovenfor kompilerer og kjører vellykket. La oss generere feilen som kunne ikke finne eller laste inn hovedklassen i programmet ovenfor. For å generere og vise feilen har vi feilstavet klassenavnet mens du skriver inn java kommando java DemoClas .
Det oppstår også når vi spesifiserer .klasse utvidelse på slutten av klassenavnet.
java DemoClass.class
For å unngå feilen, ikke skriv .klasse utvidelse på slutten av klassenavnet mens du bruker java kommando.
java DemoClass
Feilen oppstår også når vi ikke plasserer klassen i riktig mappe. I det følgende bildet er vi ikke inne i demo mappen der klassen befinner seg. Det betyr DemoClass.class filen må være inne i katalogen C:demo .
Med pakke
I programmet ovenfor, la oss lage en pakke som heter com.javatpoint . Det betyr at ved kompilering av følgende Java-program vil .class-filen bli generert inne i 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); } }
Produksjon:
Husk at hvis klassen er inne i en pakke, må vi bruke hele klassenavnet, inkludert pakkenavnet, i java-kommandoen.