{"id":91347,"date":"2022-10-11T18:22:35","date_gmt":"2022-10-11T23:22:35","guid":{"rendered":"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/"},"modified":"2022-10-11T18:22:35","modified_gmt":"2022-10-11T23:22:35","slug":"kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det","status":"publish","type":"post","link":"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/","title":{"rendered":"Kunde inte hitta eller ladda huvudklass Java? S\u00e5 h\u00e4r \u00e5tg\u00e4rdar du det!"},"content":{"rendered":"<div>\n<p>Om du forts\u00e4tter att f\u00e5 huvudklassen ej hittad-fel i ditt Java-projekt utan n\u00e5gon uppenbar anledning, oroa dig inte, du \u00e4r inte ensam.<\/p>\n<p>Som ett av de mest of\u00f6rutsedda och spontana felen, tack vare JVM:s (Java Virtual Machine) tendens att h\u00e5lla sig till en standardklassv\u00e4g, \u00e4r problemet med \u201chuvudklassen ej hittad\u201d n\u00e5got som f\u00f6rf\u00f6ljer b\u00e5de amat\u00f6rer och proffs.<\/p>\n<p>Men den h\u00e4r fr\u00e5gan \u00e4r faktiskt mindre skr\u00e4mmande \u00e4n den verkar vara.  L\u00e4s vidare f\u00f6r att ta reda p\u00e5 hur du kan bli av med detta fel en g\u00e5ng f\u00f6r alla.<\/p>\n<h2 id=\"why-was-the-main-class-not-found\"><span class=\"ez-toc-section\" id=\"Varfor_hittades_inte_huvudklassen\"><\/span>  Varf\u00f6r hittades inte huvudklassen?<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Innan vi f\u00f6rs\u00f6ker f\u00f6rst\u00e5 hur och varf\u00f6r JVM inte kunde hitta huvudklassen, m\u00e5ste vi f\u00f6rst\u00e5 begreppet <strong>Klassv\u00e4g<\/strong> i Java.<\/p>\n<h3 id=\"what-is-classpath\"><span class=\"ez-toc-section\" id=\"Vad_ar_Classpath\"><\/span>Vad \u00e4r Classpath?<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Klasss\u00f6kv\u00e4gen \u00e4r den fils\u00f6kv\u00e4g som Java-runtimemilj\u00f6n s\u00f6ker efter klasser och andra resursfiler.  Den kan st\u00e4llas in med antingen <strong>-klassv\u00e4g<\/strong> alternativ n\u00e4r ett program k\u00f6rs eller genom att st\u00e4lla in systemet <strong>KLASSV\u00c4G<\/strong> milj\u00f6faktor.<\/p>\n<p>Som namnet antyder \u00e4r det helt enkelt en fils\u00f6kv\u00e4g d\u00e4r <strong>.klass<\/strong> filer kan hittas i ett JDK-paket eller en katalog.<\/p>\n<p>N\u00e4r JVM inte kan lokalisera huvudklassen beror det ofta p\u00e5 att den letar efter motsvarande <strong>.klass<\/strong> filer i fel klasss\u00f6kv\u00e4g.  Naturligtvis, s\u00e4ttet att \u00e5tg\u00e4rda detta problem \u00e4r att manuellt specificera klasss\u00f6kv\u00e4gen genom att antingen anv\u00e4nda paket eller ange klasss\u00f6kv\u00e4gen.<\/p>\n<p>Vid det h\u00e4r laget, om du vill fr\u00e4scha upp ditt minne av Java-klasser, kolla in v\u00e5r guide f\u00f6r att skapa klasser i Java.<\/p>\n<h3 id=\"using-packages\"><span class=\"ez-toc-section\" id=\"Anvanda_paket\"><\/span>Anv\u00e4nda paket<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>L\u00e5t oss skapa en klass som heter <strong>Testa<\/strong>.  L\u00e4gg den i ett paket som heter <strong>testpaket<\/strong>.  Paket anv\u00e4nds i Java f\u00f6r att gruppera liknande klasser eller ge ett unikt namnomr\u00e5de f\u00f6r klasser.<\/p>\n<p>I det h\u00e4r enkla exemplet kommer ett paket att hj\u00e4lpa dig att visualisera hur Javas klassv\u00e4g fungerar.  I ditt filhanterarprogram representeras ett paket som en oberoende mapp.<\/p>\n<pre>package testPackage;<br\/>public class Test {<br\/>public static void main(String args[]) {<br\/>System.out.println(\"File successfully found!\");<br\/>}<br\/>}<br\/><\/pre>\n<p>\u00d6ppna nu en ny terminal och se till att din arbetskatalog \u00e4r densamma som den som inneh\u00e5ller paketmappen.  Du kan \u00e4ndra arbetskatalogen genom att anv\u00e4nda <strong>CD <\/strong>kommando p\u00e5 vilket operativsystem som helst.<\/p>\n<p>Sammanst\u00e4lla <strong>Test.java<\/strong> genom att k\u00f6ra f\u00f6ljande kommando:<\/p>\n<pre>package testPackage;<br\/>javac testPackage\/Test.java<br\/><\/pre>\n<p>Detta kommer att spara den kompilerade bin\u00e4ra filen (.class-filen) i testPackage.<\/p>\n<p>F\u00f6r att k\u00f6ra den kompilerade klassen m\u00e5ste du skriva in det fullt kvalificerade klassnamnet p\u00e5 kommandoraden.  En Java-klasss fullt kvalificerade namn h\u00e4nvisar till dess namn med prefixet till dess paketnamn.  I det h\u00e4r fallet b\u00f6r detta se ut ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<pre>java testPackage.Test<br\/><\/pre>\n<p>Detta s\u00e4tt att anropa klassfiler s\u00e4kerst\u00e4ller ocks\u00e5 att du kan anropa k\u00f6rbara filer fr\u00e5n olika paket fr\u00e5n samma arbetskatalog.  Allt du beh\u00f6ver g\u00f6ra \u00e4r att \u00e4ndra det fullt kvalificerade klassnamnet.<\/p>\n<p>I mer avancerade implementeringar rekommenderar vi att du skapar separata undermappar f\u00f6r dina klasser och k\u00e4llfiler f\u00f6r att b\u00e4ttre hantera filer i paketet.<\/p>\n<h3 id=\"manually-specifying-classpath\"><span class=\"ez-toc-section\" id=\"Ange_klasssokvag_manuellt\"><\/span>Ange klasss\u00f6kv\u00e4g manuellt<span class=\"ez-toc-section-end\"><\/span><\/h3>\n<p>Det rekommenderade s\u00e4ttet att hantera dina java-filer \u00e4r att skapa separata kataloger f\u00f6r k\u00e4llfiler och klasser.  Om du arbetar med ett projekt \u00e4r det troligt att du redan g\u00f6r detta.<\/p>\n<p>Traditionellt \u00e4r katalogen med k\u00e4llfiler m\u00e4rkt som <strong>src<\/strong> och den med .class-filer \u00e4r m\u00e4rkt som <strong>klasser.<\/strong> Detta \u00e4r ocks\u00e5 ett s\u00e4tt att s\u00e4kerst\u00e4lla att sannolikheten f\u00f6r att JVM inte hittar huvudklassen minskar avsev\u00e4rt, p\u00e5 grund av den korrekt strukturerade katalogen.<\/p>\n<p>Om vi \u200b\u200banv\u00e4nder den h\u00e4r metoden kommer katalogstrukturen att se ut s\u00e5 h\u00e4r innan kompilering:<\/p>\n<pre>|---myFolder<br\/>| |---src<br\/>| |---testPackage<br\/>| |---Test.java<br\/>|<br\/>| |---classes<br\/><\/pre>\n<p>Varje indrag i illustrationen ovan motsvarar en niv\u00e5 i filhierarkin som ditt projekt ska f\u00f6lja.<\/p>\n<p>F\u00f6r att kompilera detta, se till att din arbetskatalog \u00e4r myFolder.  Skriv nu f\u00f6ljande kommando:<\/p>\n<pre>javac -d classes src\/testPackage\/Test.java<br\/><\/pre>\n<p>De <strong>.klass<\/strong> k\u00f6rbar fil ska sparas i <strong>myFolder\/classes\/testPackage<\/strong>.  F\u00f6ljaktligen ser filkatalogstrukturen ut ungef\u00e4r s\u00e5 h\u00e4r:<\/p>\n<pre>|---myFolder<br\/>| |---src<br\/>| |---testPackage<br\/>| |---Test.java<br\/>|<br\/>| |---classes<br\/>| |---testPackage<br\/>| |---Test.class<\/pre>\n<p>Att k\u00f6ra <strong>.klass<\/strong> fil, k\u00f6r Java-kommandot med det fullst\u00e4ndiga klassnamnet och ange den lokala klasss\u00f6kv\u00e4gen.  Varje s\u00f6kv\u00e4g deklareras i f\u00f6rh\u00e5llande till arbetskatalogen, som i det h\u00e4r fallet \u00e4r myFolder.<\/p>\n<pre>java -classpath classes testPackage<br\/><\/pre>\n<p>Att k\u00f6ra det h\u00e4r kommandot b\u00f6r ge dig \u00f6nskad utdata.  Men varf\u00f6r kr\u00e4vs s\u00e5 mycket omorganisation f\u00f6r att l\u00f6sa ett enkelt fel?<\/p>\n<h2 id=\"the-importance-of-organizing-files-in-java\"><span class=\"ez-toc-section\" id=\"Vikten_av_att_organisera_filer_i_Java\"><\/span>  Vikten av att organisera filer i Java<span class=\"ez-toc-section-end\"><\/span><\/h2>\n<p>Sj\u00e4lva anledningen till att \u201cKunde inte hitta eller ladda huvudklassen\u201d kastas \u00e4r att JVM inte kunde hitta var din <strong>.klass<\/strong> filer lagrades.<\/p>\n<p>Det enklaste s\u00e4ttet att l\u00f6sa detta fel \u00e4r att kontrollera var .class-filerna lagras och uttryckligen tala om f\u00f6r JVM att leta d\u00e4r.  Detta g\u00f6rs m\u00f6jligt genom att organisera dina k\u00e4llfiler och k\u00f6rbara filer separat och kontrollera allt fr\u00e5n en arbetskatalog.<\/p>\n<p>N\u00e4r du b\u00f6rjar l\u00e4gga till konstruktioner som arv till ditt projekt, kommer filsystemets komplexitet att \u00f6ka m\u00e5nga g\u00e5nger.  I s\u00e5dana projekt eller till och med de d\u00e4r anv\u00e4ndningen av JAR-filer eller anpassade bibliotek kr\u00e4vs, kan den enkla \u00f6vningen att segregera och hantera filer spara dig otaliga timmar av fels\u00f6kning och fels\u00f6kning.<\/p>\n<p>F\u00f6r att l\u00e4sa mer om hur classpath fungerar i Java och de m\u00e5nga saker du kan kontrollera n\u00e4r det kommer till att k\u00f6ra din kod, kan du ocks\u00e5 ta en titt p\u00e5 Oracles detaljerade och anv\u00e4ndarv\u00e4nliga referens.<\/p>\n<p>    <strong class=\"section-sub-title\">Om f\u00f6rfattaren<\/strong><\/p>\n<p>            <strong class=\"bio-title\">Yash Chellani (10 publicerade artiklar)<br \/><\/strong><\/p>\n<p>Yash \u00e4r en blivande datavetenskapsstudent som \u00e4lskar att bygga saker och skriva om allt som \u00e4r tekniskt.  I hans free tid, han gillar att spela squash, l\u00e4sa en kopia av den senaste Murakami och jaga drakar i Skyrim.<\/p>\n<p>                            Mer fr\u00e5n Yash Chellani<\/p>\n<h4><span class=\"ez-toc-section\" id=\"Prenumerera_pa_vart_nyhetsbrev\"><\/span>Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<span class=\"ez-toc-section-end\"><\/span><\/h4>\n<p>G\u00e5 med i v\u00e5rt nyhetsbrev f\u00f6r tekniska tips, recensioner, free e-b\u00f6cker och exklusiva erbjudanden!<\/p>\n<p>Klicka h\u00e4r f\u00f6r att prenumerera<\/p>\n<\/p><\/div>\n  <div id=\"ez-toc-container\" class=\"ez-toc-v2_0_88 ez-toc-wrap-center counter-hierarchy ez-toc-counter ez-toc-grey ez-toc-container-direction\">\n<div class=\"ez-toc-title-container\">\n<p class=\"ez-toc-title\" style=\"cursor:inherit\">Table of Contents<\/p>\n<span class=\"ez-toc-title-toggle\"><a href=\"#\" class=\"ez-toc-pull-right ez-toc-btn ez-toc-btn-xs ez-toc-btn-default ez-toc-toggle\" aria-label=\"Toggle Table of Content\"><span class=\"ez-toc-js-icon-con\"><span class=\"\"><span class=\"eztoc-hide\" style=\"display:none;\">Toggle<\/span><span class=\"ez-toc-icon-toggle-span\"><svg style=\"fill: #999;color:#999\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" class=\"list-377408\" width=\"20px\" height=\"20px\" viewBox=\"0 0 24 24\" fill=\"none\"><path d=\"M6 6H4v2h2V6zm14 0H8v2h12V6zM4 11h2v2H4v-2zm16 0H8v2h12v-2zM4 16h2v2H4v-2zm16 0H8v2h12v-2z\" fill=\"currentColor\"><\/path><\/svg><svg style=\"fill: #999;color:#999\" class=\"arrow-unsorted-368013\" xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"10px\" height=\"10px\" viewBox=\"0 0 24 24\" version=\"1.2\" baseProfile=\"tiny\"><path d=\"M18.2 9.3l-6.2-6.3-6.2 6.3c-.2.2-.3.4-.3.7s.1.5.3.7c.2.2.4.3.7.3h11c.3 0 .5-.1.7-.3.2-.2.3-.5.3-.7s-.1-.5-.3-.7zM5.8 14.7l6.2 6.3 6.2-6.3c.2-.2.3-.5.3-.7s-.1-.5-.3-.7c-.2-.2-.4-.3-.7-.3h-11c-.3 0-.5.1-.7.3-.2.2-.3.5-.3.7s.1.5.3.7z\"\/><\/svg><\/span><\/span><\/span><\/a><\/span><\/div>\n<nav><ul class='ez-toc-list ez-toc-list-level-1 eztoc-toggle-hide-by-default' ><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-1\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Varfor_hittades_inte_huvudklassen\" >Varf\u00f6r hittades inte huvudklassen?<\/a><ul class='ez-toc-list-level-3' ><li class='ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-2\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Vad_ar_Classpath\" >Vad \u00e4r Classpath?<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-3\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Anvanda_paket\" >Anv\u00e4nda paket<\/a><\/li><li class='ez-toc-page-1 ez-toc-heading-level-3'><a class=\"ez-toc-link ez-toc-heading-4\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Ange_klasssokvag_manuellt\" >Ange klasss\u00f6kv\u00e4g manuellt<\/a><\/li><\/ul><\/li><li class='ez-toc-page-1 ez-toc-heading-level-2'><a class=\"ez-toc-link ez-toc-heading-5\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Vikten_av_att_organisera_filer_i_Java\" >Vikten av att organisera filer i Java<\/a><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><ul class='ez-toc-list-level-4' ><li class='ez-toc-heading-level-4'><a class=\"ez-toc-link ez-toc-heading-6\" href=\"https:\/\/blogging-techies.com\/sw\/kunde-inte-hitta-eller-ladda-huvudklass-java-sa-har-atgardar-du-det\/#Prenumerera_pa_vart_nyhetsbrev\" >Prenumerera p\u00e5 v\u00e5rt nyhetsbrev<\/a><\/li><\/ul><\/li><\/ul><\/li><\/ul><\/nav><\/div>\n ","protected":false},"excerpt":{"rendered":"<p>Om du forts\u00e4tter att f\u00e5 huvudklassen ej hittad-fel i ditt Java-projekt utan n\u00e5gon uppenbar anledning, oroa dig inte, du \u00e4r inte ensam. Som ett av de mest of\u00f6rutsedda och spontana felen, tack vare JVM:s (Java Virtual Machine) tendens att h\u00e5lla sig till en standardklassv\u00e4g, \u00e4r problemet med \u201chuvudklassen ej hittad\u201d n\u00e5got som f\u00f6rf\u00f6ljer b\u00e5de amat\u00f6rer [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":91348,"comment_status":"closed","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"fifu_image_url":"","fifu_image_alt":"","footnotes":""},"categories":[5],"tags":[15072,29,759,88,6205,45180,14,6155,6175,284,1120],"class_list":["post-91347","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-bloggar","tag-atgardar","tag-det","tag-eller","tag-har","tag-hitta","tag-huvudklass","tag-inte","tag-java","tag-kunde","tag-ladda","tag-sa"],"_links":{"self":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91347","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/comments?post=91347"}],"version-history":[{"count":0,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/posts\/91347\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media\/91348"}],"wp:attachment":[{"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/media?parent=91347"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/categories?post=91347"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blogging-techies.com\/sw\/wp-json\/wp\/v2\/tags?post=91347"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}