Remediere: nu s-a putut găsi sau încărca clasa principală



Încercați Instrumentul Nostru Pentru Eliminarea Problemelor

Eroarea ' Nu s-a putut găsi sau încărca clasa principală ’Apare atunci când se utilizează o comandă java în promptul de comandă pentru a lansa un program Java specificând numele clasei în terminal. Motivul pentru care se întâmplă acest lucru se datorează în principal greșelii de programare a utilizatorului în timpul declarării clasei.



Nu am putut găsi sau încărca clasa principală în linia de comandă Java

Nu am putut găsi sau încărca clasa principală - linia de comandă Java



Așa cum am menționat anterior, această eroare nu este în mare parte legată de sistem, iar utilizatorul face o greșeală în mai multe scenarii, așa cum se arată mai jos. Înainte de a merge mai departe, presupunem că aveți cunoștințe de bază despre limbajul de programare Java și cum funcționează.



Ce cauzează eroarea „Nu am putut găsi sau încărca clasa principală” în Java?

Mesajul „Nu s-a putut găsi sau încărca clasa principală” înseamnă că primul pas al motorului Java care preia clasa pentru execuție a eșuat. comanda java nu a putut localiza clasa la directorul corect.

În unele cazuri, trebuie să adăugați fișierul calea corectă a fișierului și îndreptați terminalul Java către locația corectă. Deoarece executați comanda de la terminalul din linia de comandă, computerul nu știe unde se găsește clasa sau unde se află. În IDE-urile vizate, aceasta nu este problema, deoarece IDE păstrează un indicator îndreptat către directorul de lucru curent.

Ce este sintaxa „java”?

Înainte de a începe depanarea de ce terminalul ne returnează o eroare atunci când încercăm să executăm, mai întâi trebuie să ne uităm la sintaxa comenzii. Dacă nu utilizați sintaxa corectă, vă veți confrunta inevitabil cu această eroare.



Sintaxa normală a comenzii este cam așa:

java [...] [...]

Iată o opțiune de linie de comandă, este un nume de clasă Java complet calificat și este un argument de linie de comandă care este transmis aplicației dvs. atunci când este compilat întregul pachet.

Un exemplu de comandă validă este:

java -Xmx100m com.acme.example.ListAppuals săgețile kevin bart

Comanda de mai sus va face ca comanda java să execute următoarele operații:

  • Va căuta o versiune compilată a clasei „ com.acme.example.ListAppuals '.
  • După căutare, va încărca clasa.
  • Apoi, când clasa este încărcată, clasa va fi căutată pentru o metodă „principală” cu o semnătură validă, modificatori și tip de returnare. Un eșantion de clasă principală ar fi ceva de genul:
public static main main (String [])
  • Metoda va fi apelată cu argumentele „kevin”, „săgeți” și „bart” ca șir [].

Cum se remediază „Nu s-a putut găsi sau încărca clasa principală”

Soluția 1: Verificarea argumentului pentru numele clasei

Cea mai frecventă greșeală pe care o fac utilizatorii este că furnizează un nume greșit de clasă ca argument (sau un nume corect de clasă este o formă greșită). Deoarece declarăm parametri pe linia de comandă, este foarte probabil să treceți argumentul nume de clasă într-o formă greșită. Aici vom enumera toate scenariile posibile în care puteți greși.

  • Scrierea unui numele simplu al clasei . Dacă declarați clasa într-un pachet precum „com.acme.example”, trebuie să utilizați numele complet al clasei inclusiv pachetul în comanda Java.
java com.acme.example.ListAppuals

in loc de

java ListAppuals
  • Tu ar trebui declarați un nume de clasă în loc să declare un nume de fișier sau o cale. Java nu preia clasa dacă declarați o cale / nume de fișier pentru aceasta. Incorect intrările includ următoarele:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • Carcasă ar trebui să fie luate în considerare. Comenzile Java sunt sensibile la majuscule și minuscule și dacă faceți o greșeală de chiar o literă, nu veți putea încărca clasa principală. Un exemplu de greșeli incorecte sunteți:
java com.acme.example.listappuals
  • Tu nu ar trebui declara să numele fișierului sursă . Așa cum am menționat anterior, trebuie doar să declarați clasa în formatul complet complet al numelui de clasă. Exemplu de greșeală este:
java ListAppuals.java
  • Această eroare va apărea și dacă faceți un greseala de tastare sau uitați să scrieți în totalitate numele clasei .

Dacă ați făcut greșeli neglijent în declararea numelui clasei, asigurați-vă că ați remediat-o și apoi încercați să lansați programul.

Soluția 2: Verificarea clasei

Dacă ați declarat corect numele de clasă, dar vi se afișează în continuare eroarea, este posibil ca comanda java să nu poată găsi numele de clasă specificat pe cale. Classpath este o cale în care runtime-ul Java caută fișiere de resurse și clase. Puteți seta cu ușurință calea de clasă folosind două comenzi diferite, după cum se arată mai jos:

C:> sdkTool -classpath classpath1; classpath2 ... C:> set CLASSPATH = classpath1; classpath2 ...

Pentru a obține mai multe informații cu privire la calea clasei, ar trebui să consultați următoarele documente.

Documentație de comandă Java

Setarea clasei

Soluția 3: Verificarea directorului

Când declarați un director ca o cale de clasă, acesta va corespunde întotdeauna rădăcinii spațiului de nume. De exemplu, dacă „/ usr / local / acme / classes” se află pe classpath, atunci Java va căuta o clasă „com.acme.example.Appuals”. Va căuta o clasă cu următorul nume de cale:

/usr/local/acme/classes/com/acme/example/Appuals.class

Deci, în esență, dacă puneți următoarea adresă în clasă, Java nu va putea găsi clasa:

/ usr / local / acme / classes / com / acme / example

De asemenea, ar trebui să verificați subdirector și vedeți dacă se potrivește cu FQN. Dacă FQN clasele dvs. este „com.acme.example.Appuals”, atunci Java va căuta o „Appuals.class” în directorul „com / acme / example”.

Pentru a vă oferi un exemplu, să presupunem următorul scenariu:

  • Clasa pe care doriți să o rulați este: com.acme.example.Appuals
  • calea completă a fișierului este: /usr/local/acme/classes/com/acme/example/Appuals.class
  • directorul de lucru curent este: / usr / local / acme / classes / com / acme / example /

Apoi urmează următoarele scenarii:

# greșit, FQN este necesar java Appuals # greșit, nu există un folder `com / acme / example` în directorul de lucru curent java com.acme.example.Appuals # greșit, similar scenariului de mai sus java -classpath. com.acme.example.Appuals # OK; o cale de clasă relativă este setată java -classpath ../../ .. com.acme.example.Appuals # OK; un drum de clasă absolut este setat java -classpath / usr / local / acme / classes com.acme.example.Appuals

Notă: Classpath trebuie să includă, de asemenea, toate celelalte clase (non-sistem) de care au nevoie aplicațiile dvs.

Soluția 4: Verificarea pachetului clasei

Dacă toate soluțiile de mai sus sunt valabile în cazul dvs., trebuie să vă asigurați că codul sursă este plasat în folderul corect. De asemenea, ați declarat corect fișierul pachet . Dacă rulați codul cu un IDE, acesta vă va informa probabil cu privire la problemă. Cu toate acestea, în cazul nostru, din moment ce îl rulăm în promptul de comandă, greșeala va trece neobservată și veți primi eroarea de clasă în discuție.

4 minute citite