Nevarēja atrast vai ielādēt galvenās klases Java? Lūk, kā to novērst!

Nevarēja atrast vai ielādēt galvenās klases Java? Lūk, kā to novērst!

Ja Java projektā bez redzama iemesla pastāvīgi saņemat kļūdu, kas nav atrasta, neuztraucieties, jūs neesat viens.





Tā kā viena no neparedzamākajām un spontānākajām kļūdām, pateicoties JVM (Java virtuālajai mašīnai) tendencei pieturēties pie noklusējuma klases ceļa, problēma “galvenā klase nav atrasta” ir kaut kas, kas vajā gan amatierus, gan profesionāļus.





Bet šis jautājums patiesībā ir mazāk biedējošs, nekā šķiet. Lasiet tālāk, lai uzzinātu, kā vienreiz un uz visiem laikiem atbrīvoties no šīs kļūdas.





Kāpēc netika atrasta galvenā klase?

Pirms mēģinām saprast, kā un kāpēc JVM nespēja atrast galveno klasi, mums ir jāsaprot jēdziens Klases ceļš Java.

Kas ir Classpath?

Klases ceļš ir faila ceļš, kurā Java izpildlaika vide meklē klases un citus resursu failus. To var iestatīt, izmantojot vai nu -klases ceļš opciju, izpildot programmu vai iestatot sistēmu CLASSPATH vides mainīgais.



Kā norāda nosaukums, tas ir vienkārši faila ceļš, kurā .klase failus var atrast JDK pakotnē vai direktorijā.

Ja JVM nevar atrast galveno klasi, tas bieži notiek tāpēc, ka tas meklē atbilstošo .klase failus nepareizā klases ceļā. Protams, šīs problēmas novēršanas veids ir manuāli norādīt klases ceļu, izmantojot pakotnes vai norādot klases ceļu.





Ja vēlaties atsvaidzināt Java stundu atmiņu, skatiet mūsu ceļvedi veidojot klases Java .

cik maksā jaunināšana no Windows 10 home uz pro

Pakotņu izmantošana

Izveidosim klasi ar nosaukumu Pārbaude . Ievietojiet to iepakojumā ar nosaukumu testPackage . Pakotnes Java tiek izmantotas, lai grupētu līdzīgas klases vai nodrošinātu klasēm unikālu nosaukumvietu.





Šajā vienkāršajā piemērā paketes izmantošana palīdzēs jums iztēloties, kā darbojas Java klases ceļš. Failu pārvaldnieka lietojumprogrammā pakotne ir attēlota kā neatkarīga mape.

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

Tagad atveriet jaunu termināli un pārliecinieties, vai jūsu darba direktorijs ir tāds pats kā tas, kurā ir pakotnes mape. Jūs varat mainīt darba direktoriju, izmantojot CD komandu jebkurā operētājsistēmā.

Sastādīt Test.java palaižot šādu komandu:

package testPackage;
javac testPackage/Test.java

Tādējādi apkopotais binārais fails (.class fails) tiks saglabāts testPackage.

Lai palaistu apkopoto klasi, komandrindā jāievada pilnībā kvalificēts klases nosaukums. Java klases pilnībā kvalificēts nosaukums attiecas uz tās nosaukumu, kuram ir pievienots pakotnes nosaukums. Šajā gadījumā tam vajadzētu izskatīties apmēram šādi:

java testPackage.Test

Šis klases failu izsaukšanas veids nodrošina arī to, ka jūs varat izsaukt izpildāmos failus no dažādām pakotnēm no viena darba direktorija. Viss, kas jums jādara, ir pārveidot pilnībā kvalificēto klases nosaukumu.

Uzlabotākai ieviešanai mēs iesakām izveidot atsevišķas apakšmapes savām klasēm un avota failiem, lai labāk pārvaldītu failus pakotnē.

Klases ceļa manuāla norādīšana

Ieteicamais Java failu pārvaldības veids ir izveidot atsevišķus direktorijus avota failiem un klasēm. Ja strādājat pie projekta, iespējams, jūs to jau darāt.

Parasti direktoriju ar avota failiem apzīmē kā src un viens ar .class failiem ir apzīmēts kā klases. Tas ir arī veids, kā nodrošināt, ka iespēja, ka JVM neatradīs galveno klasi, tiks ievērojami samazināta pareizi strukturēta direktorija dēļ.

Ja mēs izmantosim šo metodi, direktorija struktūra izskatīsies pirms apkopošanas:

kā ievietot gifu instagramā
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Katrs ievilkums iepriekš redzamajā ilustrācijā atbilst vienam failu hierarhijas līmenim, kas jāievēro jūsu projektam.

Lai to apkopotu, pārliecinieties, vai jūsu darba direktorijs ir myFolder. Tagad ierakstiet šādu komandu:

javac -d classes src/testPackage/Test.java

The .klase izpildāmo failu vajadzētu saglabāt myFolder/nodarbības/testPackage . Attiecīgi failu direktoriju struktūra izskatās apmēram šādi: | _+_ |

Lai palaistu .klase failu, palaidiet Java komandu ar pilnībā kvalificētu klases nosaukumu un norādiet vietējo klases ceļu. Katrs ceļš tiek deklarēts attiecībā pret darba direktoriju, kas šajā gadījumā ir myFolder.

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

Palaižot šo komandu, jums jāsniedz vēlamais rezultāts. Bet kāpēc ir nepieciešama tik liela reorganizācija, lai atrisinātu vienkāršu kļūdu?

Failu kārtošanas nozīme Java

Galvenais iemesls, kāpēc tiek atmesta “nevarēja atrast vai ielādēt galveno klasi”, ir tas, ka JVM nevarēja atrast jūsu atrašanās vietu .klase faili tika saglabāti.

Vienkāršākais veids, kā atrisināt šo kļūdu, ir kontrolēt, kur tiek glabāti .class faili, un skaidri pateikt JVM, lai tur meklē. Tas ir iespējams, atsevišķi sakārtojot avota failus un izpildāmos failus un kontrolējot visu no darba direktorijas.

Sākot pievienot tādas konstrukcijas kā mantojums Jūsu projektam failu sistēmu sarežģītība noteikti palielināsies. Šādos projektos vai pat tajos, kur ir jāizmanto JAR faili vai pielāgotas bibliotēkas, vienkārša failu atdalīšanas un pārvaldīšanas prakse var ietaupīt neskaitāmas stundu problēmu novēršanu un atkļūdošanu.

Lai uzzinātu vairāk par to, kā klases ceļš darbojas Java, un par daudzām lietām, kuras varat kontrolēt, strādājot ar kodu, varat apskatīt arī Oracle detalizēta un lietotājam draudzīga atsauce .

Kopīgot Kopīgot Čivināt E -pasts 10 labākie iesācēju projekti jaunajiem programmētājiem

Vēlies iemācīties programmēt, bet nezini, ar ko sākt? Šie iesācēju programmēšanas projekti un apmācības sāks jūs.

izveidojiet sāknējamu disku operētājsistēmai Windows 7
Lasīt Tālāk Saistītās tēmas
  • Programmēšana
  • Java
Par autoru Jašs Čellāni(10 raksti publicēti)

Jašs ir topošais datorzinātņu students, kuram patīk būvēt lietas un rakstīt par visām tehnoloģiskajām lietām. Brīvajā laikā viņam patīk spēlēt skvošu, lasīt jaunākā Murakami eksemplāru un medīt pūķus Skyrim.

Vairāk no Yash Chellani

Abonējiet mūsu biļetenu

Pievienojieties mūsu informatīvajam izdevumam, lai iegūtu tehniskus padomus, pārskatus, bezmaksas e -grāmatas un ekskluzīvus piedāvājumus!

Noklikšķiniet šeit, lai abonētu