Kunne ikke finne eller laste inn Java i hovedklassen? Slik løser du det!

Kunne ikke finne eller laste inn Java i hovedklassen? Slik løser du det!

Hvis du fortsetter å få hovedklassen ikke funnet feil i Java -prosjektet uten noen åpenbar grunn, ikke bekymre deg, du er ikke alene.





Som en av de mest uforutsigbare og spontane feilene, takket være JVMs (Java Virtual Machine) tendens til å holde seg til en standard klassebane, er problemet med 'hovedklassen ikke funnet' noe som plager både amatører og profesjonelle.





Men dette problemet er faktisk mindre skremmende enn det ser ut til å være. Les videre for å finne ut hvordan du kan bli kvitt denne feilen en gang for alle.





Hvorfor ble ikke hovedklassen funnet?

Før vi prøver å forstå hvordan og hvorfor JVM ikke klarte å finne hovedklassen, må vi forstå konseptet med Klassebane i Java.

Hva er Classpath?

Klassebanen er filbanen Java -runtime -miljøet søker etter klasser og andre ressursfiler. Den kan stilles inn med enten -klassebanen alternativet når du kjører et program eller ved å sette systemet CLASSPATH miljøvariabel.



Som navnet antyder, er det ganske enkelt en filbane der .klasse filer kan bli funnet i en JDK -pakke eller katalog.

Når JVM ikke klarer å finne hovedklassen, er det ofte fordi den leter etter den tilsvarende .klasse filer i feil klassebane. Selvfølgelig er måten å rette opp dette problemet på å spesifisere klassebanen manuelt enten ved å bruke pakker eller ved å spesifisere klassebanen.





På dette tidspunktet, hvis du vil oppdatere minnet ditt om Java -klasser, kan du se vår guide for lage klasser i Java .

jeg trenger en lommelykt på telefonen min

Bruke pakker

La oss lage en klasse som heter Test . Legg den i en pakke som heter testPakke . Pakker brukes i Java for å gruppere lignende klasser sammen eller gi et unikt navnerom for klasser.





I dette enkle eksemplet vil bruk av en pakke hjelpe deg med å visualisere hvordan Java's klassebane fungerer. I filbehandlingsprogrammet er en pakke representert som en uavhengig mappe.

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

Åpne nå en ny terminal og kontroller at arbeidskatalogen din er den samme som pakkemappen. Du kan endre arbeidskatalogen ved å bruke CD kommando på ethvert operativsystem.

Kompilere Test.java ved å kjøre følgende kommando:

package testPackage;
javac testPackage/Test.java

Dette vil lagre den kompilerte binære filen (.class -filen) i testPackage.

For å kjøre den kompilerte klassen må du skrive inn det fullt kvalifiserte klassenavnet på kommandolinjen. Et fullt kvalifisert navn for en Java -klasse refererer til navnet sitt foran med pakkenavnet. I dette tilfellet bør dette se slik ut:

java testPackage.Test

Denne måten å ringe klassefiler på sikrer også at du kan ringe kjørbare filer fra forskjellige pakker fra den samme arbeidskatalogen. Alt du trenger å gjøre er å endre det fullt kvalifiserte klassens navn.

I mer avanserte implementeringer anbefaler vi at du oppretter separate undermapper for klassene og kildefilene for å bedre administrere filer i pakken.

Manuelt spesifisere Classpath

Den anbefalte måten å administrere javafilene på er å opprette separate kataloger for kildefiler og klasser. Hvis du jobber med et prosjekt, er det sannsynlig at du allerede gjør dette.

Vanligvis er katalogen med kildefiler merket som src og den med .class -filer er merket som klasser. Dette er også en måte å sikre at sannsynligheten for at JVM ikke finner hovedklassen reduseres vesentlig på grunn av den riktig strukturerte katalogen.

Hvis vi bruker denne metoden, er det slik katalogstrukturen vil se ut før du kompilerer:

når jeg ruller ned går det opp
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Hvert ledd i illustrasjonen ovenfor tilsvarer ett nivå i filhierarkiet som prosjektet ditt bør følge.

For å kompilere dette må du kontrollere at arbeidsmappen din er myFolder. Skriv nå inn følgende kommando:

javac -d classes src/testPackage/Test.java

De .klasse kjørbar skal lagres i myFolder/classes/testPackage . Følgelig ser filkatalogstrukturen omtrent slik ut: | _+_ |

Å kjøre .klasse fil, kjør Java -kommandoen med det fullt kvalifiserte klassens navn og spesifiser den lokale klassebanen. Hver bane er deklarert i forhold til arbeidskatalogen, som i dette tilfellet er myFolder.

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

Å kjøre denne kommandoen skal gi deg ønsket utgang. Men hvorfor er så mye omorganisering nødvendig for å løse en enkel feil?

Viktigheten av å organisere filer i Java

Selve grunnen til at ‘Kunne ikke finne eller laste hovedklassen’ kastes er fordi JVM ikke klarte å finne hvor din .klasse filer ble lagret.

Den enkleste måten å løse denne feilen er å kontrollere hvor .class -filene er lagret og eksplisitt be JVM om å se der. Dette er mulig ved å organisere kildefilene og kjørbare filene separat og kontrollere alt fra en fungerende katalog.

Når du begynner å legge til konstruksjoner som f.eks arv til prosjektet ditt, vil filsystemkompleksiteten trolig øke mangfoldet. I slike prosjekter eller til og med de der bruk av JAR -filer eller egendefinerte biblioteker er påkrevd, kan den enkle øvelsen med å adskille og administrere filer spare deg for utallige timer med feilsøking og feilsøking.

For å lese mer om hvordan classpath fungerer i Java og de mange tingene du kan kontrollere når det gjelder kjøring av koden din, kan du også ta en titt på Oracles detaljert og brukervennlig referanse .

Dele Dele kvitring E -post De 10 beste nybegynnerprosjektene for nye programmerere

Vil du lære programmering, men vet ikke hvor du skal begynne? Disse nybegynnerprogrammeringsprosjektene og opplæringsprogrammene starter deg.

hvor kan jeg laste ned gratis filmer
Les neste Relaterte temaer
  • Programmering
  • Java
Om forfatteren Yash Chellani(10 artikler publisert)

Yash er en håpefull informatikkstudent som liker å bygge ting og skrive om alt teknisk. På fritiden liker han å spille Squash, lese en kopi av den siste Murakami og jakte på drager i Skyrim.

Mer fra Yash Chellani

Abonner på vårt nyhetsbrev

Bli med i vårt nyhetsbrev for tekniske tips, anmeldelser, gratis ebøker og eksklusive tilbud!

Klikk her for å abonnere