PDA

Visualizza la versione completa : [Java] Errore java.lang.NoClassFoundError in compilazione


cayman
05-07-2005, 12:22
Ciao a tutti, la "sdk1.4.2_05" da qualche settimana mi da un errore in esecuzione, cioè quando eseguo il comado "java", con qualsiasi applicazione anche utilizzando una classe banale come questa:

public class ClasseBT {
public static void main( String[] args) {
System.out.println("ClasseBT");
}
}
Se eseguo "javac ClasseBT.java" il compilatore non mi da nessun errore

Invece quando eseguo "java ClasseBT" mi compare
"Exception in thread "main" java.lang.NoClassFoundError ClasseBT"

Cosa potrebbe essere???

LeleFT
05-07-2005, 12:30
Non è che ultimamente hai modificato (o addirittura creato) la variabile d'ambiente CLASSPATH?
Prova ad eseguire con questo comando:


java -cp . ClasseBT

Ciao. :ciauz:

cayman
05-07-2005, 13:01
Originariamente inviato da LeleFT
Non è che ultimamente hai modificato (o addirittura creato) la variabile d'ambiente CLASSPATH?
Prova ad eseguire con questo comando:


java -cp . ClasseBT

Ciao. :ciauz:
SI, ultimamente ho creato e settato la CLASSPATH per inserire delle nuove API
Ora per compilare dovrò usare sempre questo comando???

alka
05-07-2005, 13:07
Il linguaggio di programmazione va specificato anche nel titolo della discussione, come descritto nel Regolamento (http://forum.html.it/forum/showthread.php?s=&threadid=762409).

Ciao! :ciauz:

cayman
05-07-2005, 13:20
UP :messner:

LeleFT
05-07-2005, 13:53
Se il classpath è settato correttamente, ciò non dovrebbe essere necessario, però io, di solito, uso un altro sistema, per evitare la rottura di scatole del CP: non setto alcuna variabile d'ambiente CLASSPATH e quando devo utilizzare dei nuovi package, li scompatto direttamente nella cartella dell'applicazione che sto realizzando. In questo modo si ha un ulteriore vantaggio: il nuovo package verrà automaticamente inglobato nell'applicazione e, conseguentemente, verrà distribuito con essa.


Niente problemi di settaggi
Niente problemi nell'avvio delle applicazioni
Niente problemi di distribuzione dell'applicazione

:)


Ciao. :ciauz:

cayman
05-07-2005, 14:31
Originariamente inviato da LeleFT
Se il classpath è settato correttamente, ciò non dovrebbe essere necessario, però io, di solito, uso un altro sistema, per evitare la rottura di scatole del CP: non setto alcuna variabile d'ambiente CLASSPATH e quando devo utilizzare dei nuovi package, li scompatto direttamente nella cartella dell'applicazione che sto realizzando. In questo modo si ha un ulteriore vantaggio: il nuovo package verrà automaticamente inglobato nell'applicazione e, conseguentemente, verrà distribuito con essa.


Niente problemi di settaggi
Niente problemi nell'avvio delle applicazioni
Niente problemi di distribuzione dell'applicazione

:)


Ciao. :ciauz:
Devo aver settato male la variabile d'ambiente CLASSPATH - Ora ti mostro come l'ho impostata: C:\j2sdk1.4.2_05\jre\lib\ext\api1.jar;C:\j2sdk1.4. 2_05\jre\lib\ext\api2.jar

Vedi qualche errore di forma???

Naturalmente "api1" ed "api2" si trovano nella cartella: "C:\j2sdk1.4.2_05\jre\lib\ext"

Altrimenti penso di fare come mi hai suggerito..

LeleFT
05-07-2005, 14:37
Credo che dovresti linkare nel classpath anche la directory corrente: aggiungi un punto ( . ) alla fine o all'inizio:


C:\j2sdk1.4.2_05\jre\lib\ext\api1.jar;C:\j2sdk1.4. 2_05\jre\lib\ext\api2.jar;.

Poi, sinceramente mi pare che nel classpath vada solo l'indicazione della directory, non il singolo package.
Quindi, dovrebbe diventare così:


C:\j2sdk1.4.2_05\jre\lib\ext\;.

Ciao. :ciauz:

cayman
05-07-2005, 16:32
Ho fatto qualche prova e finalmente ci sono arrivato
Il metodo esatto per settare la variabile d'ambiente CLASSPATH è di indicare il percoso della cartella in cui sono contenute le api extra seguito da un punto e virgola e da un punto, cioè:

percorsoCartella;.

1000 grazie

Loading