PDA

View Full Version : [java]Problema in fase di esecuzione


dadedj
22-11-2006, 22:15
Ciao a tutti,
sto cercando di imparare a programmare in java ma ho un piccolo problema....
Quando vado a compilare il mio file.java va tutto bene e si genera il file.class
ma quando cerco di mandarlo in esecuzione mi esce:
Exception in thread "main" java.lang.NoClassDefError: somma dove somma è naturalmente il nome del mio programma.
Che devo fare,dove sbaglio?
grazie a tutti

andbin
22-11-2006, 22:26
Ciao a tutti,
sto cercando di imparare a programmare in java ma ho un piccolo problema....
Quando vado a compilare il mio file.java va tutto bene e si genera il file.class
ma quando cerco di mandarlo in esecuzione mi esce:
Exception in thread "main" java.lang.NoClassDefError: somma dove somma è naturalmente il nome del mio programma.
Che devo fare,dove sbaglio?
grazie a tuttiDevi impostare correttamente il classpath, leggi <qui> (http://java.sun.com/j2se/1.5.0/docs/tooldocs/windows/classpath.html).

La cosa più semplice è fare:
java -cp . nometuaclasse

dove il punto indica che il classpath è la directory corrente.

dadedj
23-11-2006, 15:09
Grazie!
ma se io scrivo direttamente c:\j2sdk1.4.2_13\bin\javac somma.java (che funziona) e poi c:\j2sdk1.4.2_13\bin\java somma non dovrebbe funzionare lo stesso?
Scusa se le domande sono un po sceme ma sono proprio all'inizio....

andbin
23-11-2006, 15:16
Grazie!
ma se io scrivo direttamente c:\j2sdk1.4.2_13\bin\javac somma.java (che funziona) e poi c:\j2sdk1.4.2_13\bin\java somma non dovrebbe funzionare lo stesso?
Scusa se le domande sono un po sceme ma sono proprio all'inizio....Il problema non è come lanciare i vari tools (basta che siano in PATH ma puoi lanciarli, come hai appena detto, con il path completo) ma impostare correttamente il classpath.

Il "classpath" è l'elenco di directory e file .jar che l'interprete Java utilizza per localizzare i file .class.

Quindi puoi fare:
set CLASSPATH=.
java somma

oppure

java -cp . somma

dadedj
26-11-2006, 11:49
Ok grazie tutto ok!
Ne approffitto per chiederti un'ultima cosa :D

compilando questo pezzo di codice,un server,molto elementare:

import java.net.*;
import java.io.*;

class Server{

public static void main(String[] args){
MioThread t = new MioThread();
t.start();
}
}
Mi da come errore quando voglio mandarlo in esecuzione:
Exception in thread "main" java.lang.noclassdeffounderError: server (wrong name: server)

Da cosa dipende?grazie!

lovaz
26-11-2006, 16:38
Server maiuscolo?

dadedj
26-11-2006, 20:33
ho provato ma non vuole saperne di andare.....

TuLKaS85
27-11-2006, 14:38
ciao, partendo dal fatto che sto da poco studiando java, direi che potresti provare a definire class Server come public....

ciao :)