Impossibile trovare o caricare Java classe principale? Ecco come risolverlo!

Impossibile trovare o caricare Java classe principale? Ecco come risolverlo!

Se continui a ricevere l'errore della classe principale non trovata nel tuo progetto Java senza una ragione apparente, non preoccuparti, non sei solo.





Essendo uno degli errori più imprevedibili e spontanei, grazie alla tendenza di JVM (Java Virtual Machine) ad attenersi a un percorso di classe predefinito, il problema della 'classe principale non trovata' è qualcosa che perseguita sia i dilettanti che i professionisti.





Ma questo problema è in realtà meno intimidatorio di quanto sembri. Continua a leggere per scoprire come eliminare questo errore una volta per tutte.





Perché la classe principale non è stata trovata?

Prima di cercare di capire come e perché JVM non è stata in grado di trovare la classe principale, dobbiamo capire il concetto di percorso di classe in Giava.

Che cos'è Classpath?

Il classpath è il percorso del file in cui l'ambiente di runtime Java cerca le classi e altri file di risorse. Può essere impostato utilizzando sia il -classpath opzione durante l'esecuzione di un programma o impostando il sistema PERCORSO DI CLASSE variabile d'ambiente.



Come suggerisce il nome, è semplicemente un percorso di file in cui il .classe i file possono essere trovati in un pacchetto o in una directory JDK.

Quando la JVM non è in grado di individuare la classe principale, spesso è perché sta cercando la corrispondente .classe file nel classpath sbagliato. Ovviamente, il modo per correggere questo problema consiste nello specificare manualmente il percorso di classe utilizzando i pacchetti o specificando il percorso di classe.





A questo punto, se desideri rinfrescarti la memoria delle lezioni Java, dai un'occhiata alla nostra guida per creare classi in Java .

assicurati che il tuo hardware audio funzioni correttamente Windows 10

Utilizzo dei pacchetti

Creiamo una classe chiamata Test . Mettilo in un pacchetto chiamato pacchetto di prova . I pacchetti vengono utilizzati in Java per raggruppare classi simili o fornire uno spazio dei nomi univoco per le classi.





In questo semplice esempio, l'utilizzo di un pacchetto ti aiuterà a visualizzare come funziona il classpath di Java. Nell'applicazione di gestione dei file, un pacchetto è rappresentato come una cartella indipendente.

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

Ora apri un nuovo terminale e assicurati che la tua directory di lavoro sia la stessa che contiene la cartella del pacchetto. Puoi cambiare la directory di lavoro usando il cd comando su qualsiasi sistema operativo.

Compilare Test.java eseguendo il seguente comando:

package testPackage;
javac testPackage/Test.java

Questo salverà il file binario compilato (il file .class) in testPackage.

Per eseguire la classe compilata, è necessario digitare il nome completo della classe nella riga di comando. Il nome completo di una classe Java si riferisce al suo nome preceduto dal nome del pacchetto. In questo caso, dovrebbe assomigliare a questo:

java testPackage.Test

Questo modo di chiamare i file di classe garantisce anche la possibilità di chiamare eseguibili da pacchetti diversi dalla stessa directory di lavoro. Tutto quello che devi fare è modificare il nome completo della classe.

Nelle implementazioni più avanzate, ti consigliamo di creare sottocartelle separate per le tue classi e i file di origine per gestire meglio i file all'interno del pacchetto.

Specificare manualmente il percorso di classe

Il modo consigliato per gestire i file java consiste nel creare directory separate per i file sorgente e le classi. Se stai lavorando a un progetto, è probabile che lo stai già facendo.

Convenzionalmente, la directory con i file sorgente è etichettata come src e quello con i file .class è etichettato come classi. Questo è anche un modo per garantire che la probabilità che JVM non trovi la classe principale sia ridotta in modo significativo, grazie alla directory adeguatamente strutturata.

Se usiamo questo metodo, ecco come apparirà la struttura della directory prima della compilazione:

come cambiare il nome di Steam
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

Ogni rientro nell'illustrazione sopra corrisponde a un livello della gerarchia dei file che il tuo progetto dovrebbe seguire.

Per compilarlo, assicurati che la tua directory di lavoro sia myFolder. Ora, digita il seguente comando:

javac -d classes src/testPackage/Test.java

Il .classe l'eseguibile dovrebbe essere salvato in myFolder/classes/testPackage . Di conseguenza, la struttura della directory dei file è simile a questa:|_+_|

Per eseguire il .classe file, eseguire il comando Java con il nome classe completo e specificare il percorso classe locale. Ogni percorso è dichiarato relativo alla directory di lavoro, che in questo caso è myFolder.

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

L'esecuzione di questo comando dovrebbe darti l'output desiderato. Ma perché è necessaria così tanta riorganizzazione per risolvere un semplice errore?

L'importanza di organizzare i file in Java

La vera ragione per cui viene lanciata la 'Impossibile trovare o caricare la classe principale' è perché JVM non è stata in grado di trovare dove il tuo .classe i file venivano archiviati.

Il modo più semplice per risolvere questo errore è controllare dove sono archiviati i file .class e indicare esplicitamente a JVM di cercare lì. Ciò è reso possibile organizzando separatamente i file sorgente e gli eseguibili e controllando tutto da una directory di lavoro.

Quando inizi ad aggiungere costrutti come eredità al tuo progetto, la complessità del file system è destinata ad aumentare molteplici. In tali progetti o anche in quelli in cui è richiesto l'uso di file JAR o librerie personalizzate, la semplice pratica di separare e gestire i file può farti risparmiare innumerevoli ore di risoluzione dei problemi e debug.

Per saperne di più su come funziona classpath in Java e sulle numerose cose che puoi controllare quando si tratta di eseguire il tuo codice, puoi anche dare un'occhiata a Oracle's riferimento dettagliato e di facile utilizzo .

Condividere Condividere Tweet E-mail I 10 migliori progetti per principianti per nuovi programmatori

Vuoi imparare a programmare ma non sai da dove cominciare? Questi progetti e tutorial di programmazione per principianti ti faranno iniziare.

impossibile avviare in modalità provvisoria Windows 10
Leggi Avanti Argomenti correlati
  • Programmazione
  • Giava
Circa l'autore Yash Chellani(10 Articoli Pubblicati)

Yash è un aspirante studente di informatica che ama costruire cose e scrivere di tutto ciò che riguarda la tecnologia. Nel suo tempo libero, gli piace giocare a Squash, leggere una copia dell'ultimo Murakami e cacciare i draghi a Skyrim.

Altro da Yash Chellani

Iscriviti alla nostra Newsletter

Iscriviti alla nostra newsletter per consigli tecnici, recensioni, ebook gratuiti e offerte esclusive!

Clicca qui per iscriverti