Nem sikerült megtalálni vagy betölteni a főosztályú Java -t? Íme, hogyan javíthatja ki!

Nem sikerült megtalálni vagy betölteni a főosztályú Java -t? Íme, hogyan javíthatja ki!

Ha nyilvánvaló ok nélkül továbbra is a fő osztály nem talált hibát kapja a Java projektben, ne aggódjon, nem vagy egyedül.





Mivel a JVM (Java Virtual Machine) hajlamos ragaszkodni az alapértelmezett osztályútvonalhoz, az egyik leginkább előre nem látható és spontán hiba, a „főosztály nem található” probléma az amatőröket és a profikat egyaránt kísérti.





De ez a kérdés valójában kevésbé ijesztő, mint amilyennek látszik. Olvassa el, hogy megtudja, hogyan lehet egyszer és mindenkorra megszabadulni ettől a hibától.



Miért nem találták meg a főosztályt?

Mielőtt megpróbálnánk megérteni, hogy a JVM hogyan és miért nem tudta megtalálni a fő osztályt, meg kell értenünk a fogalmát Osztályút Java -ban.

Mi az Osztályút?

Az osztályútvonal az a fájl elérési útja, amelyet a Java futási környezet keres az osztályok és más erőforrásfájlok között. Beállítható a vagy használatával -osztályút opciót egy program futtatásakor vagy a rendszer beállításakor CLASSPATH környezeti változó.



Ahogy a neve is sugallja, ez egyszerűen egy fájl elérési útja, ahol a .osztály fájlok megtalálhatók egy JDK csomagban vagy könyvtárban.

Amikor a JVM nem tudja megtalálni a főosztályt, gyakran azért, mert a megfelelőt keresi .osztály fájlokat rossz osztályútvonalon. Természetesen a probléma orvoslásának módja az osztályútvonal manuális megadása vagy csomagok használatával, vagy az osztályútvonal megadásával.





Ha ezen a ponton szeretné frissíteni a Java osztályok memóriáját, nézze meg útmutatónkat osztályok létrehozása Java nyelven .

mbr vagy gpt a második merevlemezhez

Csomagok használata

Hozzon létre egy ún Teszt . Helyezze az úgynevezett csomagba testPackage . A Java -ban csomagokat használnak, hogy hasonló osztályokat csoportosítsanak, vagy egyedi névteret biztosítsanak az osztályoknak.





Ebben az egyszerű példában egy csomag használata segít elképzelni a Java osztályútjának működését. A fájlkezelő alkalmazásban a csomag független mappaként jelenik meg.

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

Most nyisson meg egy új terminált, és győződjön meg arról, hogy a munkakönyvtár megegyezik a csomagmappát tartalmazó könyvtárral. A munkakönyvtárat a CD parancsot bármilyen operációs rendszeren.

Fordítás Test.java a következő parancs futtatásával:

package testPackage;
javac testPackage/Test.java

Ezzel az összeállított bináris fájlt (.class fájlt) elmenti a testPackage -be.

Az összeállított osztály futtatásához be kell írnia a teljes minősítésű osztálynevet a parancssorba. A Java osztály teljesen minősített neve a nevére utal a csomag nevével. Ebben az esetben ennek valahogy így kell kinéznie:

java testPackage.Test

Az osztályfájlok hívásának ez a módja biztosítja azt is, hogy ugyanazon munkakönyvtárból különböző csomagokból futtatható fájlokat hívhasson. Mindössze annyit kell tennie, hogy módosítja a teljesen minősített osztálynevet.

A fejlettebb implementációkban azt javasoljuk, hogy hozzon létre külön almappákat az osztályok és a forrásfájlok számára a csomagon belüli fájlok jobb kezelése érdekében.

Az osztályútvonal kézi megadása

A java fájlok kezelésének ajánlott módja, ha külön könyvtárakat hoz létre a forrásfájlokhoz és osztályokhoz. Ha egy projekten dolgozik, akkor valószínűleg már ezt is megteszi.

Hagyományosan a forrásfájlokat tartalmazó könyvtárat a következő címkével látják el src a .class fájlokat tartalmazó pedig a osztályok. Ezzel is biztosítható, hogy annak valószínűsége, hogy a JVM nem találja meg a főosztályt, jelentősen csökken a megfelelően felépített könyvtár miatt.

Ha ezt a módszert használjuk, így néz ki a könyvtárszerkezet a fordítás előtt:

olvassa a mac os kiterjesztett ablakokat
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

A fenti illusztráció minden francia bekezdése a fájlhierarchia egy szintjének felel meg, amelyet a projektnek követnie kell.

Ennek fordításához győződjön meg arról, hogy a munkakönyvtár a myFolder. Most írja be a következő parancsot:

javac -d classes src/testPackage/Test.java

Az .osztály a végrehajtható fájlt el kell menteni myFolder/class/testPackage . Ennek megfelelően a fájlkönyvtár szerkezete valahogy így néz ki: | _+_ |

Futtatni a .osztály fájlt, futtassa a Java parancsot a teljesen minősített osztálynévvel, és adja meg a helyi osztályútvonalat. Minden elérési út a munkakönyvtárhoz képest van deklarálva, amely ebben az esetben a myFolder.

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

A parancs futtatásával meg kell adnia a kívánt kimenetet. De miért van szükség ennyi átszervezésre egy egyszerű hiba megoldásához?

A fájlok rendszerezésének fontossága a Java -ban

A „Nem sikerült megtalálni vagy betölteni a főosztályt” oka az, hogy a JVM nem tudta megtalálni, hol van .osztály fájlokat tároltak.

A hiba megoldásának legegyszerűbb módja a .class fájlok tárolási helyének szabályozása, és kifejezetten utasítja a JVM -et, hogy nézzen oda. Ez úgy lehetséges, hogy a forrásfájlokat és a futtatható fájlokat külön rendszerezi, és mindent egy működő könyvtárból irányít.

Ahogy elkezdi hozzáadni a konstrukciókat, mint pl öröklés a projekthez, a fájlrendszer összetettsége mindenképpen megnövekszik. Az ilyen projektekben, vagy akár azokban, ahol JAR fájlok vagy egyéni könyvtárak használata szükséges, a fájlok elkülönítésének és kezelésének egyszerű gyakorlata számtalan órányi hibaelhárítást és hibakeresést takaríthat meg.

Ha többet szeretne megtudni arról, hogy az osztályútvonal hogyan működik Java -ban, és a kód futtatásával kapcsolatos számos dologról, amelyeket ellenőrizhet, tekintse meg az Oracle részletes és felhasználóbarát referencia .

Részvény Részvény Csipog Email A 10 legjobb kezdő projekt új programozóknak

Szeretnél megtanulni programozni, de nem tudod, hol kezdd? Ezek a kezdő programozási projektek és oktatóanyagok elindítanak.

hogyan lehet elrejteni a Windows 10 vízjel aktiválását
Olvassa tovább Kapcsolódó témák
  • Programozás
  • Jáva
A szerzőről Yash Chellani(10 cikk megjelent)

Yash egy törekvő informatikus hallgató, aki szeret építeni és írni minden technikai dologról. Szabadidejében szeret fallabdával játszani, a legújabb Murakami másolatát olvasni és sárkányokra vadászni a Skyrimben.

Továbbiak Yash Chellani -tól

Iratkozzon fel hírlevelünkre

Csatlakozz hírlevelünkhöz, ahol technikai tippeket, értékeléseket, ingyenes e -könyveket és exkluzív ajánlatokat találsz!

Feliratkozáshoz kattintson ide