Kan jag inte hitta eller ladda Java i huvudklass? Så här fixar du det!

Kan jag inte hitta eller ladda Java i huvudklass? Så här fixar du det!

Om du fortsätter att få huvudklassen inte hittat fel i ditt Java -projekt utan uppenbar anledning, oroa dig inte, du är inte ensam.



Som ett av de mest oförutsägbara och spontana felen, tack vare JVM: s (Java Virtual Machine) tendens att hålla sig till en standardklassväg, är problemet med 'huvudklassen inte hittat' något som hemsöker amatörer och proffs.

Men den här frågan är faktiskt mindre skrämmande än den verkar vara. Läs vidare för att ta reda på hur du kan bli av med det här felet en gång för alla.





Varför hittades inte huvudklassen?

Innan vi försöker förstå hur och varför JVM inte kunde hitta huvudklassen måste vi förstå begreppet Klassväg i Java.

Vad är Classpath?

Klassvägen är den sökväg som Java runtime -miljön söker efter klasser och andra resursfiler. Det kan ställas in med antingen -klassbana alternativ när du kör ett program eller genom att ställa in systemet CLASSPATH miljöfaktor.



Som namnet antyder är det helt enkelt en sökväg där .klass filer finns i ett JDK -paket eller en katalog.

När JVM inte kan hitta huvudklassen beror det ofta på att den letar efter motsvarande .klass filer i fel klassväg. Naturligtvis är sättet att åtgärda detta problem att manuellt ange klassvägen antingen med hjälp av paket eller genom att ange klassvägen.

Vid det här laget, om du vill uppdatera ditt minne av Java -klasser, kolla in vår guide för skapa klasser i Java .

hur man bleknar i garageband

Använda paket

Låt oss skapa en klass som heter Testa . Lägg den i ett paket som heter testPackage . Paket används i Java för att gruppera liknande klasser eller skapa ett unikt namnutrymme för klasser.

I detta enkla exempel kan du använda ett paket för att visualisera hur Javas klassväg fungerar. I ditt filhanteringsprogram representeras ett paket som en oberoende mapp.

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

Öppna nu en ny terminal och se till att din arbetskatalog är densamma som den som innehåller paketmappen. Du kan ändra arbetskatalogen med CD kommando på alla operativsystem.

Sammanställa Test.java genom att köra följande kommando:

package testPackage;
javac testPackage/Test.java

Detta sparar den kompilerade binära filen (.class -filen) i testPackage.

För att köra den kompilerade klassen måste du skriva in det fullt kvalificerade klassnamnet på kommandoraden. Ett Java -klassens fullt kvalificerade namn hänvisar till dess namn med förpackningsnamnet. I det här fallet bör det se ut så här:

java testPackage.Test

Detta sätt att ringa klassfiler säkerställer också att du kan ringa körbara filer från olika paket från samma arbetskatalog. Allt du behöver göra är att ändra det fullt kvalificerade klassnamnet.

I mer avancerade implementeringar rekommenderar vi att du skapar separata undermappar för dina klasser och källfiler för att bättre hantera filer i paketet.

Ange klassväg manuellt

Det rekommenderade sättet att hantera dina java -filer är att skapa separata kataloger för källfiler och klasser. Om du arbetar med ett projekt är det troligt att du redan gör det.

Konventionellt är katalogen med källfiler märkta som src och den med .class -filer är märkt som klasser. Detta är också ett sätt att säkerställa att sannolikheten för att JVM inte hittar huvudklassen minskar avsevärt på grund av den korrekt strukturerade katalogen.

Om vi ​​använder den här metoden ser katalogstrukturen ut så här innan den kompileras:

bästa stöldskyddsprogram för Android
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Varje strecksats i illustrationen ovan motsvarar en nivå i filhierarkin som ditt projekt bör följa.

För att kompilera detta, se till att din arbetskatalog är myFolder. Skriv nu följande kommando:

javac -d classes src/testPackage/Test.java

De .klass körbar ska sparas i myFolder/classes/testPackage . Följaktligen ser filkatalogstrukturen ut ungefär så här: | _+_ |

Att köra .klass fil, kör Java -kommandot med det fullt kvalificerade klassnamnet och ange den lokala klassvägen. Varje sökväg deklareras relativt arbetskatalogen, som i detta fall är myFolder.

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

Att köra detta kommando bör ge dig önskad utdata. Men varför är så mycket omorganisation nödvändig för att lösa ett enkelt fel?

Vikten av att organisera filer i Java

Själva anledningen till att 'Det gick inte att hitta eller ladda huvudklassen' kastas är att JVM inte kunde hitta var din .klass filer lagrades.

Det enklaste sättet att lösa detta fel är att kontrollera var .class -filerna lagras och uttryckligen berätta för JVM att leta dit. Detta görs möjligt genom att organisera dina källfiler och körbara filer separat och styra allt från en fungerande katalog.

När du börjar lägga till konstruktioner som t.ex. arv för ditt projekt kommer filsystemets komplexitet att öka mångfalden. I sådana projekt eller till och med de där det krävs användning av JAR -filer eller anpassade bibliotek kan den enkla praxis att separera och hantera filer spara dig otaliga timmar med felsökning och felsökning.

För att läsa mer om hur klassvägen fungerar i Java och de många saker du kan styra när det gäller att köra din kod kan du också ta en titt på Oracles detaljerad och användarvänlig referens .

Dela med sig Dela med sig Tweet E-post De 10 bästa nybörjarprojekten för nya programmerare

Vill du lära dig programmering men vet inte var du ska börja? Dessa nybörjarprogrammeringsprojekt och självstudier kommer att starta dig.

hur man delar spellista på spotify
Läs Nästa Relaterade ämnen
  • Programmering
  • Java
Om författaren Yash Chellani(10 artiklar publicerade)

Yash är en blivande datavetenskapstudent som älskar att bygga saker och skriva om allt som är tekniskt. På fritiden gillar han att spela Squash, läsa en kopia av den senaste Murakami och jaga drakar i Skyrim.

Mer från Yash Chellani

Prenumerera på vårt nyhetsbrev

Gå med i vårt nyhetsbrev för tekniska tips, recensioner, gratis e -böcker och exklusiva erbjudanden!

Klicka här för att prenumerera