Forum discussione progetto

Java non trova o non carica la classe

Java non trova o non carica la classe

di FILIPPO ALESSANDRO SANDOVAL VILLARREAL -
Numero di risposte: 6

Buonasera Professoressa

Fino ad ora ho utilizzato Eclipse sia per il progetto che per gli assigment. Il java non riesce a trovare o caricare la classe ,nonostante sia nella stessa directory, ho provato da powershell su Windows : javac riesce a compilare il tutto (utilizzando javac -d . *.java) ma al momento di eseguire mi dice che non riesce a caricare o trovare la classe Main casuata da java.lang.classNotFoundException . Per eseguire ho utilizzato java usando java nomepackage.class  . Ho provato sia con gson.jar e sia avendo decompresso quest ultimo. Andando ad eseguire con eclipse non viene dato alcun problema.

Ho provato anche con un Main che stampa solo un messaggio e mi da gli stessi errori, compila ma al momento di eseguire con java mi dice che non riesce a trovare  la classe che si trova nella stessa directory.

In riposta a FILIPPO ALESSANDRO SANDOVAL VILLARREAL

Ri: Java non trova o non carica la classe

di MATTEO LOPORCHIO -
Ciao,

Per risolvere il problema è necessario sapere come è strutturato il tuo progetto. Riesci a postare la struttura della directory principale del progetto? Nello screenshot in allegato c'è un esempio. 

Struttura progetto Eclipse


In riposta a MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

di FILIPPO ALESSANDRO SANDOVAL VILLARREAL -
                                                                             

In riposta a FILIPPO ALESSANDRO SANDOVAL VILLARREAL

Ri: Java non trova o non carica la classe

di MATTEO LOPORCHIO -
Procediamo per gradi testando prima il server.
Dato che stai usando Eclipse, io suggerirei intanto di fare come segue:

  1. Posizionati nella directory principale del progetto, denominata "Progetto_finale_Wordle".
  2. Crea una cartella "lib" e mettici dentro il file JAR di Gson.
  3. Partendo dalla cartella "Progetto_finale_Wordle", compila con: javac -cp ".:./lib/nomeJarGson" src/ServerWordle/*.java -d bin/
  4. Dopo aver compilato, prova ad eseguire il server digitando: java -cp "./bin:./lib/nomeJarGson" nomePackageServer.WordleServerMain dove nomeJarGson e nomePackageServer sono rispettivamente il nome del file JAR della libreria Gson e il nome del package relativo al server (che credo sia ServerWordle).
In riposta a MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

di FILIPPO ALESSANDRO SANDOVAL VILLARREAL -
ho provato ma mi dice ,quando vado a compilare, error: module not found gson
In riposta a FILIPPO ALESSANDRO SANDOVAL VILLARREAL

Ri: Java non trova o non carica la classe

di MATTEO LOPORCHIO -

Hai verificato che il classpath sia corretto? Il classpath deve sempre contenere anche il percorso del file JAR di Gson, altrimenti le classi della libreria non vengono trovate. Se vuoi, comunque, puoi mandarmi per mail la cartella del progetto, così do un'occhiata direttamente.

In riposta a MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

di MATTEO LOPORCHIO -
Riporto qui la soluzione.

Il problema era la presenza del file "module-info.java" e della cartella "module-info" dentro la directory “src".
Dopo aver rimosso il file e la cartella, i comandi che seguono, se eseguiti dalla directory principale del progetto, permettono di compilare ed eseguire tutto il progetto da riga di comando.

Compilazione server: javac -cp ".:./lib/gson-2.6.2.jar" src/ServerWordle/*.java -d bin/
Compilazione client: javac -cp ".:./lib/gson-2.6.2.jar" src/ClientWordle/*.java -d bin/
Esecuzione server: java -cp "./bin:./lib/gson-2.6.2.jar" ServerWordle.WordleServerMain
Esecuzione client: java -cp "./bin:./lib/gson-2.6.2.jar" ClientWordle.WordleClientMain