Ne možete pronaći ili učitati Java glavne klase? Evo kako to popraviti!

Ne možete pronaći ili učitati Java glavne klase? Evo kako to popraviti!

Ako neprestano dobivate pogrešku glavne klase koja nije pronađena u vašem Java projektu bez očiglednog razloga, ne brinite, niste sami.





Kao jedna od najnepredvidljivijih i spontanih grešaka, zahvaljujući tendenciji JVM -a (Java Virtual Machine Machine) da se pridržava zadanog puta klase, problem 'glavna klasa nije pronađena' nešto je što proganja amatere i profesionalce.





No ovo je pitanje manje zastrašujuće nego što se čini. Čitajte dalje kako biste saznali kako se jednom zauvijek možete riješiti ove pogreške.





Zašto glavna klasa nije pronađena?

Prije nego pokušamo razumjeti kako i zašto JVM nije uspio pronaći glavnu klasu, moramo razumjeti koncept Staza razreda na Javi.

Što je Classpath?

Put klasa je put do datoteke koji Java runtime okruženje traži klase i druge datoteke resursa. Može se postaviti pomoću -razred opciju prilikom izvođenja programa ili postavljanjem sustava CLASSPATH varijabla okruženja.



Kao što naziv govori, to je jednostavno put do datoteke gdje se .razred datoteke se mogu pronaći u JDK paketu ili direktoriju.

Kad JVM ne može locirati glavnu klasu, to je često zato što traži odgovarajuću .razred datoteke na pogrešnom putu puta. Naravno, način rješavanja ovog problema je ručno navođenje putanje klase bilo korištenjem paketa ili specificiranjem staze klase.





U ovom trenutku, ako želite osvježiti pamćenje Java klasa, pogledajte naš vodič za stvaranje klasa u Javi .

kako udvostručiti razmak u riječi

Korištenje paketa

Kreirajmo klasu tzv Test . Stavite ga u paket tzv testPackage . Paketi se u Javi koriste za grupiranje sličnih klasa ili za pružanje jedinstvenog imenskog prostora za klase.





U ovom jednostavnom primjeru, korištenje paketa pomoći će vam da zamislite kako funkcionira Javin put do klase. U vašoj aplikaciji za upravljanje datotekama paket je predstavljen kao neovisna mapa.

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

Sada otvorite novi terminal i provjerite je li vaš radni direktorij isti kao i onaj koji sadrži mapu paketa. Radni direktorij možete promijeniti pomoću CD naredbu na bilo kojem operativnom sustavu.

Sastaviti Test.java pokretanjem sljedeće naredbe:

package testPackage;
javac testPackage/Test.java

To će spremiti prevedenu binarnu datoteku (.class datoteku) u testPackage.

Da biste pokrenuli prevedenu klasu, morate unijeti potpuno kvalificirano ime klase u naredbeni redak. Potpuno kvalificirano ime Java klase odnosi se na njegovo ime s predznakom naziva paketa. U ovom slučaju ovo bi trebalo izgledati otprilike ovako:

java testPackage.Test

Ovaj način pozivanja datoteka klasa također osigurava da možete pozvati izvršne datoteke iz različitih paketa iz istog radnog direktorija. Sve što trebate učiniti je izmijeniti potpuno kvalificirano ime klase.

U naprednijim implementacijama preporučujemo da stvorite zasebne podmape za svoje klase i izvorne datoteke radi boljeg upravljanja datotekama unutar paketa.

Ručno navođenje putanje klase

Preporučeni način upravljanja vašim java datotekama je stvaranje posebnih direktorija za izvorne datoteke i klase. Ako radite na projektu, vjerojatno to već radite.

Konvencionalno, direktorij s izvornim datotekama označen je kao src a onaj s datotekama .class označen je kao klase. Ovo je također način da se osigura da se vjerojatnost da JVM ne pronađe glavnu klasu značajno smanji, zahvaljujući pravilno strukturiranom direktoriju.

Ako koristimo ovu metodu, ovako će izgledati struktura direktorija prije sastavljanja:

najbolji linux distro za web razvoj
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Svaka alineja na gornjoj ilustraciji odgovara jednoj razini hijerarhije datoteka koju bi vaš projekt trebao slijediti.

Da biste ovo sastavili, provjerite je li vaš radni direktorij myFolder. Sada upišite sljedeću naredbu:

javac -d classes src/testPackage/Test.java

The .razred izvršnu datoteku treba spremiti u myFolder/classes/testPackage . U skladu s tim, struktura direktorija datoteka izgleda otprilike ovako: | _+_ |

Za pokretanje .razred datoteku, pokrenite Java naredbu s potpuno kvalificiranim imenom klase i navedite lokalni put klase. Svaki put je deklariran u odnosu na radni direktorij, koji je u ovom slučaju myFolder.

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

Izvođenje ove naredbe trebalo bi vam dati željeni izlaz. No, zašto je toliko reorganizacije potrebno za rješavanje jednostavne pogreške?

Važnost organiziranja datoteka u Javi

Razlog zašto se baca poruka 'Nije moguće pronaći ili učitati glavnu klasu' je taj što JVM nije mogao pronaći gdje se nalazi .razred datoteke su bile pohranjene.

Najlakši način za rješavanje ove pogreške je kontrolirati gdje su datoteke .class pohranjene i izričito reći JVM -u da tamo pogleda. To je omogućeno zasebnim organiziranjem izvornih datoteka i izvršnih datoteka i kontroliranjem svega iz radnog direktorija.

Kad počnete dodavati konstrukte poput nasljedstvo za vaš projekt, složenost datotečnog sustava će se višestruko povećati. U takvim projektima ili čak onima u kojima je potrebna upotreba JAR datoteka ili prilagođenih knjižnica, jednostavna praksa razdvajanja i upravljanja datotekama može vam uštedjeti bezbroj sati rješavanja problema i ispravljanja pogrešaka.

Da biste pročitali više o tome kako classpath radi u Javi i brojnim stvarima koje možete kontrolirati kada je u pitanju pokretanje vašeg koda, također možete pogledati Oracle -ove detaljna i user-friendly referenca .

Udio Udio Cvrkut E -pošta 10 najboljih projekata za početnike za nove programere

Želite naučiti programiranje, ali ne znate odakle početi? Ovi projekti i vodiči za programiranje početnika će vas započeti.

max procesor bez razloga
Pročitajte Dalje Povezane teme
  • Programiranje
  • Java
O autoru Yash Chellani(10 objavljenih članaka)

Yash je ambiciozni student informatike koji voli graditi stvari i pisati o svim stvarima tehnologije. U slobodno vrijeme voli igrati skvoš, čitati primjerak najnovijeg Murakamija i loviti zmajeve u Skyrimu.

Više od Yash Chellanija

Pretplatite se na naše obavijesti

Pridružite se našem biltenu za tehničke savjete, recenzije, besplatne e -knjige i ekskluzivne ponude!

Kliknite ovdje za pretplatu