Kon nie hoofklas vind of laai nie – wat beteken dit?
Inhoud
Die rekenaarsagteware-spesifikasies van Java word wyd gebruik vir die ontwikkeling van toepassingsprogrammatuur en die ontplooiing daarvan in kruisplatform-rekenaaromgewings. Dit word in 'n groot verskeidenheid rekenaarplatforms gebruik, insluitend selfone, ingebedde toestelle, superrekenaars en ondernemingsbedieners. As jy 'n nuwe Java-ontwikkelaar is, moes jy die 'kon nie hoofklas se fout vind of laai nie, waarna jou programme weier om te loop. Hierdie artikel gaan jou gedetailleerde inligting gee oor wat hierdie foutboodskap beteken, wat die oorsake daarvan is en hoe jy dit kan regmaak.
Wat beteken die foutboodskap?
Wanneer jy dit ontvang foutboodskap, dit beteken bloot dat die stelsel tydens die eerste stap self misluk het. Die Java-opdrag wat jy ingevoer het, kon nie die klas vind wat nodig is om die program te laat loop nie. In die meeste gevalle sal die foutboodskap ook vergesel word van die klasnaam waarna dit gesoek het, maar kon nie vind nie.
Redes waarom jy hierdie foutboodskap ontvang het
Daar kan verskeie redes wees wat kan veroorsaak dat hierdie foutboodskap op jou skerm verskyn. Kom ons praat in detail oor hulle:
1. Jy het nie die klasnaam korrek ingevoer nie
Een van die mees algemene redes is dat jy nie die korrekte klasnaam verskaf het nie, of dat jy die regte klasnaam met een of ander fout verskaf het. Daar kan verskeie maniere wees om 'n verkeerde klasnaam te verskaf. Hier is 'n paar voorbeelde:
- Skryf 'n eenvoudige klasnaam: Wanneer jy jou klasnaam in 'n pakket verklaar, bv com.acme.voorbeeld, dan moet jy sy volle klasnaam gebruik, insluitend sy pakketnaam in Java-opdrag. As jy versuim om dit te doen, of as jy dit verkeerd doen, sal Java nie die klas kan identifiseer nie, en jy sal waarskynlik hierdie foutboodskap ontvang. In plaas daarvan om net 'n eenvoudige klasnaam soos java ListUser te skryf, moet jy java skryf com.acme.voorbeeld.LysGebruiker.
- Skryf 'n padnaam of lêernaam in plaas van klasnaam: Een fout wat nuwe Java-ontwikkelaars algemeen maak, is om die padnaam of lêernaam in plaas van die korrekte klasnaam te skryf.
- Skryf die klasnaam met verkeerde hoofletters: Jy moet ook die omhulsel oppas terwyl jy die klasnaam skryf.
- Maak 'n tik- of spelfout: Java sal nie die klasnaam identifiseer as jy 'n spel- of tikfout maak terwyl jy dit skryf nie. Maak seker dat die klasnaam wat jy skryf heeltemal korrek is en sonder enige foute.
- Skryf 'n bronlêernaam: Deur die bronlêernaam in die klasnaam te skryf, sal Java verhoed om die klasnaam te identifiseer.
2. Jy het verkeerde klaspad vir die toepassing gespesifiseer
Selfs al spesifiseer jy die klasnaam op die regte manier, Java opdrag dalk nie die nodige klas kan vind nie. Vir 'n dieper begrip van hierdie konsep, moet jy ook inligting oor klaspad leer. As jy die foutboodskap 'kon nie hoofklas vind of laai nie' ontvang, is die eerste ding wat jy moet nagaan jou klasnaam.
As dit korrek is, is die volgende ding waarna u moet kyk, die klaspad. Volg hierdie stappe om dit na te gaan:
- Gee aandag aan die opdragreël en die klaspad-omgewingsveranderlike wat jy gebruik het terwyl jy die Java-opdrag uitgevoer het
- Kontroleer dat die JAR-lêer- en gidsname absoluut reg is
- As jy sommige padname in die klaspad genoem het, maak seker dat hulle korrek opgelos is terwyl jy die Java-opdrag uitvoer
- Maak seker dat die klas wat in jou foutboodskap genoem word ook op die klaspad teenwoordig is
3. Daar is verkeerde gids op die klaspad
Wanneer 'n gids op die klaspad geplaas word, moet dit ooreenstem met die gekwalifiseerde naamspasie se wortel. Klas is geleë in die struktuur van die gids net onder daardie wortel, en jy kan dit vind deur 'n heeltemal gekwalifiseerde naam aan jou padnaam te verskaf.
4. Subgidspad pas nie by FQN nie
As die FQN van jou klas is com.acme.voorbeeld.Toon, dan sal JVM soek Toon.klas binne die gids. As die struktuur van u gids nie ooreenstem met die naam van die pakket in 'n soortgelyke patroon nie, sal die JVM nie die verlangde klas kan vind nie. Om die klas te hernoem deur sy posisie te verskuif, sal ook nie in hierdie geval help nie. Jy moet versigtig wees terwyl jy tussen relatiewe en absolute padname in die klaspaaie kies. Hou in gedagte dat jy 'n relatiewe padnaam kan breek as daar veranderinge in die huidige gids is.
5. Gebrek aan afhanklikhede van klaspad
Klaspad wat jy gebruik, moet al die nie-stelselklasse insluit waarvan jy jou toepassing afhanklik is. Jy moet die minste daaroor bekommerd wees, aangesien stelselklasse hul ligging outomaties vind en jy niks daaraan hoef te doen nie. Om die hoofklas korrek te laai, vind die JVM die volgende:
- Die klas
- Al die koppelvlakke en klasse in die hiërargie van superklas
- Al die koppelvlakke en klasse verwys deur veranderlike verklarings, veld uitdrukkings of metode oproepe
Neem asseblief kennis dat JVM- en JLS-spesifikasies ruimte laat vir JVM om die klasse te laai, en dit kan 'n effek hê op wanneer dit die klaslaaier-uitsondering gooi.
6. Jy het die klas in die verkeerde pakket verklaar
Daar is kanse dat jy die bronkode lêer in 'n verkeerde gids, of jy het die verklaring van die pakket uitgelaat. As jy dit in een of ander IDE gedoen het, sal sy samesteller jou dadelik daaroor waarsku. As jy 'n Java-bou-instrument gebruik het, sal dit die Javac laat loop om die probleem op te spoor en jou te waarsku. As jou Java-kode egter met die hand gebou is, sal die samesteller dit dalk nie kan opspoor nie en jy kan dalk die 'kon nie hoofklas vind of laai nie' foutboodskap op jou skerm ontvang.
Hoe om die betrokke kwessie op te los
Ten einde los die foutprobleem op, jy moet eers die oorsaak daarvan identifiseer. Aanvanklik kan jy begin deur die klasnaam en die klaspadinstellings na te gaan. Maak seker dat jy die regte program en sy klasnaam geskryf het. Om dit na te gaan, vind die korrekte naam van jou pakket uit, want jy het jou hoofklas in daardie pakket geplaas.
As alles goed lyk en daar is geen spelfout, maak dan seker dat jy die pad korrek gestel het. As dit ook goed gedoen word, kan jy die verwante taalprogram invoer en dit saamstel. Herbegin die program, stel dit weer saam en jy sal dit sonder enige fout kan laat loop. As jy steeds die foutboodskap kry, moet jy die gids op die klaspad nagaan, die subgids wat by die FQN moet pas, en die pakketverklaring in die klaspad. Sodra jy die oorsaak geïdentifiseer het, sal jy dit sonder veel probleme kan oplos.
Afsluiting
Java is 'n relatief maklike taalprogram om te leer en te bedryf. Die foutboodskap 'kon nie hoofklas vind of laai nie' kan egter frustrerend en ontmoedigend wees. So, identifiseer die probleem wat die probleem veroorsaak, en los dit vinnig op deur die bogenoemde instruksies te volg.
As jy soortgelyke artikels wil lees Kon nie hoofklas vind of laai nie – wat beteken dit?, ons beveel aan dat u ons besoek Sagteware kategorie.