Forum discussione progetto

Java non trova o non carica la classe

Java non trova o non carica la classe

by FILIPPO ALESSANDRO SANDOVAL VILLARREAL -
Number of replies: 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 reply to FILIPPO ALESSANDRO SANDOVAL VILLARREAL

Ri: Java non trova o non carica la classe

by 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 reply to MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

by FILIPPO ALESSANDRO SANDOVAL VILLARREAL -
                                                                             

In reply to FILIPPO ALESSANDRO SANDOVAL VILLARREAL

Ri: Java non trova o non carica la classe

by 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 reply to MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

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

Ri: Java non trova o non carica la classe

by 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 reply to MATTEO LOPORCHIO

Ri: Java non trova o non carica la classe

by 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