Kunne ikke finne eller laste hovedklassen – hva betyr det?

Kunne ikke finne eller laste hovedklassen – hva betyr det?

Dataprogramvarespesifikasjonene til Java er mye brukt for utvikling av applikasjonsprogramvare og distribusjon i datamiljøer på tvers av plattformer. Den brukes i et stort utvalg av dataplattformer, inkludert mobiltelefoner, innebygde enheter, superdatamaskiner og bedriftsservere. Hvis du er en ny Java-utvikler, må du ha sett `kunne ikke finne eller laste hovedklassens feil, hvoretter programmene dine nekter å kjøre. Denne artikkelen skal gi deg detaljert informasjon om hva denne feilmeldingen betyr, hva er årsakene til den og hvordan du kan fikse den.

Du kan også være interessert i: Hvordan fungerer Pokemon Go - Komplett veiledning

Hva betyr feilmeldingen?

Når du mottar dette feilmelding, dette betyr ganske enkelt at systemet har sviktet under selve det første trinnet. Java-kommandoen du skrev inn kunne ikke finne klassen som kreves for å kjøre programmet. I de fleste tilfeller vil feilmeldingen også være ledsaget av klassenavnet den lette etter, men kunne ikke finne.

Årsaker til at du mottok denne feilmeldingen

Det kan være flere årsaker som kan føre til at denne feilmeldingen vises på skjermen. La oss snakke om dem i detalj:

1. Du skrev ikke inn klassenavnet riktig

En av de vanligste årsakene er at du ikke oppga riktig klassenavn, eller at du oppga riktig klassenavn med en feil. Det kan være flere forskjellige måter å angi feil klassenavn på. Her er noen eksempler:

  • Skrive et enkelt klassenavn: Når du erklærer klassenavnet ditt i en pakke, f.eks com.acme.eksempel, da må du bruke det fulle klassenavnet, inkludert pakkenavnet i Java-kommandoen. Hvis du ikke klarer det, eller hvis du gjør det feil, vil ikke Java kunne identifisere klassen, og du vil sannsynligvis motta denne feilmeldingen. I stedet for å bare skrive et enkelt klassenavn som java ListUser, bør du skrive java com.acme.eksempel.Listebruker.
  • Skrive et banenavn eller filnavn i stedet for klassenavn: En feil som nye Java-utviklere vanligvis gjør, er å skrive banenavnet eller filnavnet i stedet for det riktige klassenavnet.
  • Skrive klassenavnet med feil store bokstaver: Du må også ta vare på foringsrøret mens du skriver klassenavnet.
  • Skrive- eller stavefeil: Java vil ikke identifisere klassenavnet hvis du gjør en stave- eller skrivefeil mens du skriver det. Sørg for at klassenavnet du skriver er helt korrekt og uten feil.
  • Skrive et kildefilnavn: Å skrive kildefilnavnet i klassenavnet vil hindre Java i å identifisere klassenavnet.

2. Du spesifiserte feil klassebane for applikasjonen

Selv om du angir klassenavnet på riktig måte, Java-kommando kanskje ikke finne den nødvendige klassen. For en dypere forståelse av dette konseptet, må du også lære litt informasjon om klasseveien. Hvis du får feilmeldingen "kunne ikke finne eller laste inn hovedklassen", er det første du må sjekke klassenavnet ditt.

Hvis det er riktig, er det neste du må se nærmere på klassebanen. Følg disse trinnene for å sjekke det:

  • Legg merke til kommandolinjen og klassebanemiljøvariabelen du brukte mens du kjørte Java-kommandoen
  • Sjekk at JAR-filen og katalognavnene er helt riktige
  • Hvis du har nevnt noen stinavn i klassebanen, sørg for at de er løst riktig mens du kjører Java-kommandoen
  • Sørg for at klassen som er nevnt i feilmeldingen din også er til stede på klassebanen

3. Det er feil katalog på klassebanen

Når en katalog legges på klassebanen, skal den tilsvare roten til det kvalifiserte navnerommet. Klassen ligger i strukturen til katalogen rett under roten, og du kan finne den ved å gi et fullstendig kvalifisert navn til stinavnet ditt.

4. Underkatalogbanen samsvarer ikke med FQN

Hvis FQN for klassen din er com.acme.eksempel.Toon, så JVM vil se etter Toon.klasse inne i katalogen. Hvis strukturen til katalogen din ikke samsvarer med navnet på pakken i et lignende mønster, vil JVM ikke kunne finne ønsket klasse. Å gi nytt navn til klassen ved å skifte posisjon vil heller ikke hjelpe i dette tilfellet. Du må være forsiktig når du velger mellom relative og absolutte banenavn i klassebanene. Husk at du kan bryte et relativ banenavn hvis det er endringer i gjeldende katalog.

5. Mangel på avhengigheter fra klasseveien

Klassebanen du bruker, bør inkludere alle ikke-systemklassene du er avhengig av applikasjonen din. Du må være minst bekymret for det, siden systemklasser automatisk finner posisjonen sin og du trenger ikke å gjøre noe med det. For å laste inn hovedklassen riktig, finner JVM følgende:

  • Klassen
  • Alle grensesnittene og klassene i hierarkiet til superklassen
  • Alle grensesnitt og klasser referert til gjennom variabeldeklarasjoner, feltuttrykk eller metodekall

Vær oppmerksom på at JVM- og JLS-spesifikasjonene gir litt plass til JVM for å laste klassene, og det kan ha en viss innvirkning på når det kaster klasselasterunntaket.

6. Du erklærte klassen i feil pakke

Det er sjanser for at du legger kildekodefilen i en feil mappe, eller du utelot erklæringen om pakken. Hvis du gjorde dette i en IDE, vil kompilatoren varsle deg om det umiddelbart. Hvis du brukte et Java-byggeverktøy, vil det kjøre Javac for å oppdage problemet og varsle deg. Men hvis Java-koden din er bygget for hånd, kan det hende at kompilatoren ikke kan oppdage den, og du kan motta feilmeldingen "kunne ikke finne eller laste inn hovedklassen" på skjermen.

Slik løser du det aktuelle problemet

For å løse feilproblemet, du må identifisere årsaken først. Til å begynne med kan du starte med å sjekke klassenavnet og klassestiinnstillingene. Sørg for at du har skrevet riktig program og klassenavnet. For å sjekke det, finn ut det riktige navnet på pakken din fordi du har plassert hovedklassen din i den pakken.

Hvis alt ser bra ut og det er nei stavefeil, sjekk deretter at du har satt banen riktig. Hvis det også er gjort bra, kan du importere det relaterte språkprogrammet og kompilere det. Start programmet på nytt, kompiler det på nytt, og du vil kunne kjøre det uten feil. Hvis du fortsatt får feilmeldingen, må du sjekke katalogen på klassebanen, underkatalogen som skal samsvare med FQN, og pakkeerklæringen i klassebanen. Når du har identifisert årsaken, vil du være i stand til å løse den uten store problemer.

Konklusjon

Java er et relativt enkelt språkprogram å lære og betjene. Men feilmeldingen "kunne ikke finne eller laste inn hovedklassen" rett i begynnelsen av kjøringen kan være frustrerende og nedslående. Så identifiser problemet som forårsaker problemet, og løs det raskt ved å følge instruksjonene ovenfor.

Hvis du vil lese lignende artikler til Kunne ikke finne eller laste hovedklassen – hva betyr det?, vi anbefaler deg å besøke vår Programvare kategori.