PDA

View Full Version : [Java] Prime armi, errore classdefFoundError


Redvex
08-11-2007, 12:09
Il semplice programmino per visualizzare il testo in riga di comando.
Ho installato l'ultima jdk
public class Prova
{
public static void main (String [] args)
{
System.out.println ("Ciao");
}
}


Ho compilato e va tutto bene solo che quando vado a lanciarlo mi esce scritto
Exception in thread "main" java.lang.NoClassdefFounError : Prova

Innanzitutto ho modificato le variabili di sistema
CLASSPATH = C:\Programmi\Java\jdk1.6.0_03\ (ho provato a mettere il . la directory bin o lib)
JAVA_HOME = C:\Programmi\Java\jdk1.6.0_03\bin (l'ha detto il prof di metterla)
Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Programmi\QuickTime\QTSystem\;C:\Programmi\IDM Computer Solutions\UltraEdit-32;C:\Programmi\Microsoft SQL Server\80\Tools\Binn\;C:\Programmi\Java\jdk1.6.0_03\bin
(Sempre il professore ha detto di settare così)

Ora prima il classpath era diverso (C:\Programmi\Java\jre1.5.0_04\lib\ext\QTJava.zip§) e indicava un file zip e l'ho modificato leggendo i vari thread sulla rete. Ho anche riavviato ma sempre uguale

ho anche un'altra voce QTJava = C:\Programmi\Java\jre1.5.0_04\lib\ext\QTJava.zip

E' installata l'ultima jdk

andbin
08-11-2007, 12:46
Innanzitutto ho modificato le variabili di sistema
CLASSPATH = C:\Programmi\Java\jdk1.6.0_03\ (ho provato a mettere il . la directory bin o lib)Innanzitutto non serve mettere in classpath la 'home' di Java. Il classpath serve per specificare nomi di directory e/o file zip/jar affinché la JVM sia in grado di trovare le classi necessarie.


JAVA_HOME = C:\Programmi\Java\jdk1.6.0_03\bin (l'ha detto il prof di metterla)No, sbagliato. Deve essere la 'home' del JDK, non la '\bin'. E comunque questa variabile di ambiente non viene usata dai tools del JDK ma semmai da tools esterni (es. Ant).

Path = %SystemRoot%\system32;%SystemRoot%;%SystemRoot%\System32\Wbem;C:\Programmi\QuickTime\QTSystem\;C:\Programmi\IDM Computer Solutions\UltraEdit-32;C:\Programmi\Microsoft SQL Server\80\Tools\Binn\;C:\Programmi\Java\jdk1.6.0_03\bin
(Sempre il professore ha detto di settare così)Sì, mettere in PATH la '\bin' del JDK è ok.


Per tornare alla tua classe, per lanciare l'applicazione hai diverse possibilità, differenti per quanto riguarda la impostazione del classpath:

- Non avere la variabile CLASSPATH e lanciare con: java Prova
- Avere la variabile CLASSPATH che contiene o '.' (directory corrente) o la directory esatta dove si trova Prova.class e lanciare con: java Prova
- Indipendentemente da CLASSPATH, lanciare con java -classpath . Prova

P.S. ti suggerisco anche di leggere la documentazione ufficiale, tra cui ad esempio: Setting the class path (http://java.sun.com/javase/6/docs/technotes/tools/windows/classpath.html) piuttosto di ascoltare solo il prof. che magari può dire un sacco di fregnacce. :p

Redvex
08-11-2007, 12:52
Ho risolto cancellandola. Tnx ^^
Forse JAVA_HOME ci servirà per quando inizieremo a utilizzare Eclipse.:confused: