Cosa significa "Impossibile trovare o caricare la classe principale"?


Un problema comune che i nuovi sviluppatori Java sperimentano è che i loro programmi non riescono a funzionare con il messaggio di errore: Could not find or load main class ...

Cosa significa questo, cosa lo causa e come dovresti risolverlo?

Author: Stephen C, 2013-08-07

30 answers

La sintassi del comando java <class-name>

Prima di tutto, è necessario comprendere il modo corretto per avviare un programma utilizzando il comando java (o javaw).

La sintassi normale1 è questo:

java [ <option> ... ] <class-name> [ <argument> ... ]

Dove <option> è un'opzione della riga di comando (che inizia con un carattere" -"), <class-name> è un nome di classe Java completo e <argument> è un argomento arbitrario della riga di comando che viene passato all'applicazione.
1 - Esiste una seconda sintassi per JAR" eseguibile" file che descriverò in fondo.

Il nome completo (FQN) per la classe è scritto convenzionalmente come si farebbe nel codice sorgente Java; ad esempio

packagename.packagename2.packagename3.ClassName

Si noti che il termine nome completo è una terminologia Java standard ... non qualcosa che ho appena inventato per confonderti: -)

Ecco un esempio di come dovrebbe essere un comando java:

java -Xmx100m com.acme.example.ListUsers fred joe bert

Quanto sopra farà sì che il comando java esegua di seguito:

  1. Cerca la versione compilata della classe com.acme.example.ListUsers.
  2. Carica la classe.
  3. Verifica che la classe abbia un metodo main con la firma , tipo di ritorno e modificatori dato da public static void main(String[]). (Nota, il nome dell'argomento del metodo è NON parte della firma.)
  4. Chiama quel metodo passandogli gli argomenti della riga di comando ("fred", "joe", "bert") come String[].

Motivi per cui Java non riesce a trovare classe

Quando viene visualizzato il messaggio "Impossibile trovare o caricare la classe principale ...", ciò significa che il primo passo è fallito. Il comando java non è stato in grado di trovare la classe. E infatti, il"..."nel messaggio sarà il nome di classe completo che java sta cercando.

Quindi perché potrebbe non essere in grado di trovare la classe?

Motivo #1 - hai commesso un errore con l'argomento classname

La prima causa probabile è che potresti aver fornito il nome della classe sbagliato. (O ... il nome della classe giusta, ma nella forma sbagliata.) Considerando l'esempio sopra, qui una varietà di modi sbagliati per specificare il nome della classe:

  • Esempio # 1-un semplice nome di classe:

    java ListUser
    

    Quando la classe viene dichiarata in un pacchetto come com.acme.example, è necessario utilizzare il nome completo della classe incluso il nome del pacchetto nel comando java; ad esempio

    java com.acme.example.ListUser
    
  • Esempio # 2-un nome di file o un percorso piuttosto di un nome di classe:

    java ListUser.class
    java com/acme/example/ListUser.class
    
  • Esempio # 3-un nome di classe con l'involucro errato:

    java com.acme.example.listuser
    
  • Esempio # 4-un errore di battitura

    java com.acme.example.mistuser
    
  • Esempio # 5-un nome di file sorgente

    java ListUser.java
    
  • Esempio # 6-hai dimenticato completamente il nome della classe

    java lots of arguments
    

Motivo #2-il classpath dell'applicazione è specificato in modo errato

La seconda causa probabile è che il nome della classe sia corretto, ma che il java il comando non riesce a trovare la classe. Per capire questo, è necessario comprendere il concetto di "classpath". Questo è spiegato bene dalla documentazione Oracle:

Quindi ... se hai specificato correttamente il nome della classe, la prossima cosa da verificare è che hai specificato il classpath correttamente:

  1. Leggi i tre documenti collegati sopra. (Sì ... LEGGILE. È importante che un programmatore Java comprenda almeno le basi di come funzionano i meccanismi Java classpath.)
  2. Guardare la riga di comando e / o la variabile d'ambiente CLASSPATH che è in vigore quando si esegue il comando java. Verificare che i nomi delle directory e dei file JAR siano corretti.
  3. Se ci sono relativi nomi di percorso nel classpath, verificare che si risolvono correttamente ... dalla directory corrente attiva quando si esegue il comando java.
  4. Verificare che la classe (menzionata nel messaggio di errore) possa trovarsi sul classpath efficace .
  5. Si noti che la sintassi classpath è diversa per Windows rispetto a Linux e Mac OS. (Il separatore classpath è ; su Windows e : sugli altri.)

Motivo #2a - la directory sbagliata è sul classpath

Quando metti una directory sul classpath, corrisponde teoricamente alla radice dello spazio dei nomi qualificato. Le classi si trovano nella struttura di directory sotto quella radice, mappando il nome completo a un percorso. Quindi, ad esempio, se "/usr/local/acme/classes" si trova sul percorso della classe, quando la JVM cerca una classe chiamata com.acme.example.Foon, cercherà un ".classe " file con questo percorso:

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

Se avessi messo "/ usr / local / acme / classes / com / acme / example " sul classpath, quindi la JVM non sarebbe in grado di trovare la classe.

Motivo #2b-il percorso della sottodirectory non corrisponde all'FQN

Se le tue classi FQN sono com.acme.example.Foon, allora la JVM cercherà "Foon.classe "nella directory" com / acme / example":

  • Se la tua struttura di directory non corrisponde alla denominazione del pacchetto secondo il modello sopra, la JVM non troverà la tua classe.

  • Se si tenta di rinominare una classe spostandola, ciò fallirà così ... ma l'eccezione stacktrace sarà diversa.

Per fare un esempio concreto, supponendo che:

  • si desidera eseguire com.acme.example.Foon classe,
  • il percorso completo del file è /usr/local/acme/classes/com/acme/example/Foon.class,
  • la directory di lavoro corrente è /usr/local/acme/classes/com/acme/example/,

Poi:

# wrong, FQN is needed
java Foon

# wrong, there is no `com/acme/example` folder in the current working directory
java com.acme.example.Foon

# wrong, similar to above
java -classpath . com.acme.example.Foon

# fine; relative classpath set
java -classpath ../../.. com.acme.example.Foon

# fine; absolute classpath set
java -classpath /usr/local/acme/classes com.acme.example.Foon

Note:

  • L'opzione -classpath può essere abbreviata in -cp nella maggior parte delle versioni Java. Controllare le rispettive voci manuali per java, javac e così su.
  • Pensa attentamente quando scegli tra percorsi assoluti e relativi nei percorsi di classe. Ricorda che un percorso relativo potrebbe "interrompersi" se la directory corrente cambia.

Motivo #2c-dipendenze mancanti dal classpath

Il classpath deve includere tutte le altre (non di sistema) classi da cui dipende l'applicazione. (Le classi di sistema si trovano automaticamente e raramente è necessario preoccuparsi di questo.) Per il principale classe per caricare correttamente, la JVM deve trovare:

  • la classe stessa.
  • tutte le classi e le interfacce nella gerarchia delle superclassi (ad esempio, vedere questa domanda)
  • tutte le classi e le interfacce a cui si fa riferimento mediante dichiarazioni di variabili o variabili o espressioni di chiamata di metodo o di accesso al campo.

(Nota: le specifiche JLS e JVM consentono a una JVM di caricare le classi "pigramente", e questo può influire quando un classloader l'eccezione viene generata.)

Motivo #3-la classe è stata dichiarata nel pacchetto sbagliato

Capita occasionalmente che qualcuno inserisca un file di codice sorgente nel la cartella sbagliata nel loro albero del codice sorgente, oppure tralasciano la dichiarazione package. Se lo fai in un IDE, il compilatore dell'IDE te ne parlerà immediatamente. Allo stesso modo se si utilizza uno strumento di compilazione Java decente, lo strumento verrà eseguito javac in modo da rilevare il problema. Tuttavia, se si crea il codice Java a mano, puoi farlo in modo tale che il compilatore non noti il problema e il risultante ".il file" class " non è nel posto in cui ti aspetti che sia.

Non riesci ancora a trovare il problema?

Ci sono un sacco di cose da controllare, ed è facile perdere qualcosa. Prova ad aggiungere l'opzione -Xdiag alla riga di comando java (come prima cosa dopo java). Produrrà varie cose sul caricamento della classe, e questo potrebbe offrirti indizi su quale sia il vero problema essere.

Inoltre, considera possibili problemi causati dalla copia e dall'incollaggio di caratteri invisibili o non ASCII da siti Web, documenti e così via. E considerare "omoglifi", erano due lettere o simboli lo stesso aspetto ... ma non lo sono.


La sintassi java -jar <jar file>

La sintassi alternativa utilizzata per i file JAR" eseguibili " è la seguente:

java [ <option> ... ] -jar <jar-file-name> [<argument> ...]

Ad esempio

java -Xmx100m -jar /usr/local/acme-example/listuser.jar fred

In questo caso vengono specificati il nome della classe entry-point (cioè com.acme.example.ListUser) e il classpath nel MANIFESTO del file JAR.


IDE

Un tipico IDE Java supporta l'esecuzione di applicazioni Java nella JVM IDE stessa o in una JVM figlio. Questi sono generalmente immuni da questa particolare eccezione, perché l'IDE utilizza i propri meccanismi per costruire il classpath runtime, identificare la classe principale e creare la riga di comando java.

Tuttavia è ancora possibile che questa eccezione si verifichi, se si fanno cose dietro il retro dell'IDE. Ad esempio, se hai precedentemente impostato un programma di avvio delle applicazioni per la tua app Java in Eclipse, e hai quindi spostato il file JAR contenente la classe "principale" in una posizione diversa nel file system senza dire a Eclipse, Eclipse avvierebbe involontariamente la JVM con un classpath errato.

In breve, se si verifica questo problema in un IDE, verificare la presenza di cose come stato IDE stantio, riferimenti di progetto interrotti o configurazioni di avvio interrotte.

È anche possibile un IDE per confondersi semplicemente. Gli IDE sono pezzi di software estremamente complicati che comprendono molte parti interagenti. Molte di queste parti adottano varie strategie di caching per rendere l'IDE nel suo complesso reattivo. Questi a volte possono andare male, e un possibile sintomo è problemi durante l'avvio di applicazioni. Se sospetti che ciò potrebbe accadere, vale la pena riavviare il tuo IDE.


Altri riferimenti

 922
Author: Stephen C, 2018-10-13 16:53:51

Se il nome del codice sorgente è HelloWorld.java, il codice compilato sarà HelloWorld.class.

Otterrai quell'errore se lo chiami usando:

java HelloWorld.class

Invece, usa questo:

java HelloWorld
 190
Author: panoet, 2017-09-04 14:06:24

Se le tue classi sono in pacchetti, devi cd nella directory principale ed eseguire usando il nome completo della classe (packageName.MainClassName).

Esempio:

Le mie lezioni sono qui:

D:\project\com\cse\

Il nome completo della mia classe principale è:

com.cse.Main

Quindi cd torna alla directory principale:

D:\project

Quindi emettere il comando java:

java com.cse.Main
 101
Author: tharinduwijewardane, 2017-01-14 16:54:38

Se il tuo metodo principale è nella classe sotto un pacchetto, dovresti eseguirlo sulla directory gerarchica.

Supponiamo che ci sia un file di codice sorgente (Main.java):

package com.test;

public class Main {

    public static void main(String[] args) {
        System.out.println("salam 2nya\n");
    }
}

Per eseguire questo codice, è necessario inserire Main.Class nel pacchetto come directory ./com/test/Main.Java. E nella directory principale usa java com.test.Main.

 44
Author: M-Razavi, 2017-05-23 17:32:03

Quando lo stesso codice funziona su un PC, ma mostra l'errore in un altro, la soluzione migliore che abbia mai trovato è la compilazione come segue:

javac HelloWorld.java
java -cp . HelloWorld
 36
Author: Enamul Hassan, 2017-01-14 16:56:52

Ciò che mi ha aiutato è stato specificare il classpath sulla riga di comando, ad esempio:

  1. Crea una nuova cartella, C:\temp

  2. Crea temperatura file.java in C:\temp, con la seguente classe in esso:

    public class Temp {
        public static void main(String args[]) {
            System.out.println(args[0]);
        }
    }
    
  3. Aprire una riga di comando nella cartella C:\temp e scrivere il seguente comando per compilare la classe Temp:

    javac Temp.java
    
  4. Esegui la classe Java compilata, aggiungendo l'opzione -classpath per far sapere a JRE dove trovare il classe:

    java -classpath C:\temp Temp Hello!
    
 27
Author: Celebes, 2017-01-14 16:51:55

In base al messaggio di errore ("Impossibile trovare o caricare la classe principale"), ci sono due categorie di problemi:

  1. Impossibile trovare la classe principale
  2. La classe principale non può essere caricata (questo caso non è completamente discusso nella risposta accettata)

La classe principale non può essere trovata quando c'è errore di battitura o sintassi errata nel nome completo della classe o non esiste nel classpath fornito .

Classe principale impossibile caricato quando la classe non può essere avviata , in genere la classe principale estende un'altra classe e tale classe non esiste nel classpath fornito.

Per esempio:

public class YourMain extends org.apache.camel.spring.Main

Se camel-spring non è incluso, questo errore verrà segnalato.

 21
Author: Xiao Peng - ZenUML.com, 2017-06-05 00:38:20

A volte ciò che potrebbe causare il problema non ha nulla a che fare con la classe principale, e ho dovuto scoprirlo nel modo più duro. Era una libreria di riferimento che ho spostato e mi ha dato:

Impossibile trovare o caricare la classe principale xxx Linux

Ho appena cancellato quel riferimento, l'ho aggiunto di nuovo e ha funzionato di nuovo.

 12
Author: Eduardo Dennis, 2017-01-14 16:49:21

Ho avuto un tale errore in questo caso:

java -cp lib.jar com.mypackage.Main

Funziona con ; per Windows e : per Unix:

java -cp lib.jar; com.mypackage.Main
 12
Author: Yamahar1sp, 2017-04-09 10:30:52

Usa questo comando:

java -cp . [PACKAGE.]CLASSNAME

Esempio: Se il tuo nome di classe è Hello.classe creata da Ciao.java quindi utilizzare il seguente comando:

java -cp . Hello

Se il tuo file Ciao.java è all'interno del pacchetto com.demo quindi utilizzare il seguente comando

java -cp . com.demo.Hello

Con JDK 8 molte volte capita che il file di classe sia presente nella stessa cartella, ma il comando java prevede classpath e per questo motivo aggiungiamo -cp . per prendere la cartella corrente come riferimento per classpath.

 12
Author: shaILU, 2018-02-06 23:55:46

Prova -Xdiag .

La risposta di Steve C copre bene i possibili casi, ma a volte determinare se la classe non può essere trovata o caricata potrebbe non essere così facile. Usa java -Xdiag (da JDK 7). Questo stampa un bel stacktrace che fornisce un suggerimento su cosa significa il messaggio Could not find or load main class.

Ad esempio, può puntare ad altre classi utilizzate dalla classe principale che non sono state trovate e hanno impedito il caricamento della classe principale.

 10
Author: jan.supol, 2018-02-06 23:18:14

In questo caso hai:

Impossibile trovare o caricare la classe principale ?percorso di classe

È perché stai usando "-classpath", ma il trattino non è lo stesso trattino usato da java al prompt dei comandi. Ho avuto questo problema copiando e incollando da Blocco note a cmd.

 8
Author: Nathan Williams, 2017-01-14 16:55:34

Nel mio caso, è apparso un errore perché avevo fornito il nome del file sorgente invece del nome della classe.

Dobbiamo fornire il nome della classe contenente il metodo principale all'interprete.

 6
Author: KawaiKx, 2014-03-12 00:37:57

Questo potrebbe aiutarti se il tuo caso è specificamente simile al mio: come principiante ho anche riscontrato questo problema quando ho provato a eseguire un programma Java.

L'ho compilato in questo modo:

javac HelloWorld.java

E ho provato a eseguire anche con la stessa estensione:

java Helloworld.java

Quando ho rimosso .java e riscritto il comando come java HelloWorld, il programma ha funzionato perfettamente. :)

 6
Author: Ramesh Pareek, 2018-02-06 23:53:28

inserisci qui la descrizione dell'immagine

Posizione del file di classe: C:\test\com\company

Nome file: Principale.classe

Nome classe completo: com.azienda.Principale

Riga di comando comando:

java  -classpath "C:\test" com.company.Main

Nota qui che il percorso della classe NON include \ com \ company

 5
Author: developer747, 2017-03-27 02:18:52

Se si utilizza Maven per creare il file JAR, assicurarsi di specificare la classe principale nel pom.file xml:

<build>
    <plugins>
        <plugin>
            <artifactId>maven-jar-plugin</artifactId>
            <configuration>
                <archive>
                    <manifest>
                        <mainClass>class name us.com.test.abc.MyMainClass</mainClass>
                    </manifest>
                </archive>
            </configuration>
        </plugin>
    </plugins>
</build>
 5
Author: Junchen Liu, 2018-02-06 23:52:16

Ho passato una discreta quantità di tempo a cercare di risolvere questo problema. Ho pensato che stavo in qualche modo impostando il mio classpath in modo errato ma il problema era che ho digitato:

java -cp C:/java/MyClasses C:/java/MyClasses/utilities/myapp/Cool  

Invece di:

java -cp C:/java/MyClasses utilities/myapp/Cool   

Pensavo che il significato di full qualified significasse includere il nome del percorso completo invece del nome completo del pacchetto.

 5
Author: mathewbruens, 2018-02-07 08:14:26

Prima imposta il percorso usando questo comando;

set path="paste the set path address"

Quindi è necessario caricare il programma. Digitare "cd (nome cartella)" nell'unità memorizzata e compilarlo. Ad esempio, se il mio programma memorizzato sull'unità D, digitare "D:" premere invio e digitare " cd (nome cartella)".

 4
Author: arun, 2013-12-02 14:33:34

Ciò che ha risolto il problema nel mio caso è stato:

Fare clic destro sul progetto / classe che si desidera eseguire, quindi Run As->Run Configurations. Quindi è necessario correggere la configurazione esistente o aggiungerne una nuova nel modo seguente:

Aprire la scheda Classpath, fare clic sul pulsante Advanced... quindi aggiungere bin cartella del progetto.

 4
Author: syntagma, 2016-01-16 10:26:31

Questo è un caso specifico, ma dal momento che sono venuto a questa pagina alla ricerca di una soluzione e non l'ho trovata, la aggiungerò qui.

Windows (testato con 7) non accetta caratteri speciali (come á) nei nomi di classi e pacchetti. Linux lo fa, però.

L'ho scoperto quando ho creato un .jar in NetBeans e ho provato a eseguirlo nella riga di comando. Ha funzionato in NetBeans ma non nella riga di comando.

 3
Author: GuiRitter, 2015-12-27 00:26:16

Tutte le risposte qui sono dirette verso gli utenti Windows a quanto pare. Per Mac, il separatore classpath è :, non ;. Come errore nell'impostare il classpath usando ; non viene lanciato, questo può essere difficile da scoprire se proviene da Windows a Mac.

Ecco il comando Mac corrispondente:

java -classpath ".:./lib/*" com.test.MyClass

Dove in questo esempio il pacchetto è com.test e una cartella lib deve essere inclusa anche su classpath.

 3
Author: blue-sky, 2017-01-20 19:24:53

Quando si esegue java con l'opzione -cp come pubblicizzato in Windows PowerShell, è possibile che venga visualizzato un errore simile a:

The term `ClassName` is not recognized as the name of a cmdlet, function, script ...

Per consentire a PowerShell di accettare il comando, gli argomenti dell'opzione -cp devono essere contenuti tra virgolette come in:

java -cp 'someDependency.jar;.' ClassName

La formazione del comando in questo modo dovrebbe consentire a Java di elaborare correttamente gli argomenti del classpath.

 3
Author: Chezzwizz, 2017-05-21 08:14:38

A volte, in alcuni compilatori online che potresti aver provato, otterrai questo errore se non scrivi public class [Classname] ma solo class [Classname].

 3
Author: lor, 2017-08-18 18:29:30

Va bene, molte risposte già, ma nessuno ha menzionato il caso in cui il permesso di file può essere il colpevole. Quando si esegue l'utente non ha accesso al file jar o una delle directory del percorso. Ad esempio, considera:

File Jar in /dir1/dir2/dir3/myjar.jar

User1 che possiede il vaso può fare:

# Running as User1
cd /dir1/dir2/dir3/
chmod +r myjar.jar

Ma ancora non funziona:

# Running as User2
java -cp "/dir1/dir2/dir3:/dir1/dir2/javalibs" MyProgram
Error: Could not find or load main class MyProgram

Questo perché l'utente in esecuzione (User2) non ha accesso a dir1, dir2, o javalibs o dir3. Si può guidare qualcuno noci quando User1 può vedere i file e può accedervi, ma l'errore si verifica ancora per User2

 3
Author: biocyberman, 2018-09-26 12:33:35

Su Windows inserisci .; al valore CLASSPATH all'inizio.

Il. (punto) significa "guarda nella directory corrente". Questa è una soluzione permanente.

Inoltre è possibile impostare "una volta" con set CLASSPATH=%CLASSPATH%;.. Questo durerà fino a quando la finestra cmd è aperta.

 2
Author: Nenad Bulatovic, 2017-01-20 19:12:33

È necessario farlo dalla cartella src. Qui si digita la seguente riga di comando:

[name of the package].[Class Name] [arguments]

Diciamo che la tua classe si chiama CommandLine.class e il codice è simile a questo:

package com.tutorialspoint.java;

    /**
     * Created by mda21185 on 15-6-2016.
     */

    public class CommandLine {
        public static void main(String args[]){
            for(int i=0; i<args.length; i++){
                System.out.println("args[" + i + "]: " + args[i]);
            }
        }
    }

Quindi dovresti cd nella cartella src e il comando che devi eseguire sarà simile a questo:

java com.tutorialspoint.java.CommandLine this is a command line 200 -100

E l'output sulla riga di comando sarebbe:

args[0]: this
args[1]: is
args[2]: a
args[3]: command
args[4]: line
args[5]: 200
args[6]: -100
 2
Author: mdarmanin, 2017-01-20 19:17:26

Nel mio caso, ho ricevuto l'errore perché avevo mescolato nomi di pacchetti MAIUSCOLI e minuscoli su un sistema Windows 7. La modifica dei nomi dei pacchetti in tutte le lettere minuscole ha risolto il problema. Si noti inoltre che in questo scenario, non ho avuto alcun errore di compilazione del .file java in un.file di classe; semplicemente non verrebbe eseguito dalla stessa directory (sub-sub-sub -).

 2
Author: Howard007, 2017-12-26 19:55:15

Ho anche affrontato errori simili durante il test di una connessione Java MongoDB JDBC. Penso che sia bene riassumere la mia soluzione finale in breve in modo che in futuro chiunque possa esaminare direttamente i due comandi e sia bene procedere ulteriormente.

Si supponga di trovarsi nella directory in cui esistono il file Java e le dipendenze esterne (file JAR).

Compila:

javac -cp mongo-java-driver-3.4.1.jar JavaMongoDBConnection.java
  • -cp - argomento classpath; passare tutti i file JAR dipendenti uno per uno
  • *.java-Questo è il file di classe Java che ha il metodo principale. sdsd

Esegui:

java -cp mongo-java-driver-3.4.1.jar: JavaMongoDBConnection
  • Si prega di osservare i due punti (Unix) / virgola (Windows) dopo che tutti i file JAR delle dipendenze finiscono
  • Alla fine, osservare il nome della classe principale senza alcuna estensione (no .classe o .java)
 2
Author: khichar.anil, 2018-02-06 23:21:13

Ne ho avuto uno strano.

Errore: impossibile trovare o caricare il mypackage della classe principale.App

Si è scoperto che avevo una configurazione pom (genitore) nel pom del mio progetto.xml (il mio progetto è pom.xml stava indicando un pom genitore.xml) e il relativePath era off / sbagliato.

Di seguito è riportato un parziale del pom del mio progetto.xml

<parent>
    <groupId>myGroupId</groupId>
    <artifactId>pom-parent</artifactId>
    <version>0.0.1-SNAPSHOT</version>
    <relativePath>../badPathHere/pom.xml</relativePath>
</parent> 

Una volta risolto il pom relativePath, l'errore è andato via.

Vai a capire.

 2
Author: granadaCoder, 2018-09-21 20:34:55

In Java, quando a volte si esegue la JVM dalla riga di comando utilizzando l'eseguibile Java e si sta tentando di avviare un programma da un file di classe con public static void main (PSVM), è possibile eseguire l'errore seguente anche se il parametro classpath della JVM è accurato e il file di classe è presente sul classpath:

Error: main class not found or loaded

Questo accade se il file di classe con PSVM non può essere caricato. Una possibile ragione per questo è che la classe potrebbe implementare un'interfaccia o estendere un'altra classe che non è sul classpath. Normalmente se una classe non è sul classpath, l'errore generato indica come tale. Ma, se la classe in uso è estesa o implementata, java non è in grado di caricare la classe stessa.

Riferimento: https://www.computingnotes.net/java/error-main-class-not-found-or-loaded /

 1
Author: Anandaraja Ravi, 2015-09-18 03:01:01