Newsgroup: it.comp.java
Titolo: Aiutino (scusate il cross post)

Salve a tutti, chiedo una cosa: dopo aver scritto un programma, lo
compilo e va tutto bene (quindi tutto ok con la path), però in esecuzione mi
da un errore nel main,  java.lang.NoClassDefFoundError: [nome del prog].
Ora, fino a poco tempo fa non avevo nessun problema, poi ho dovuto
formattare e ora qualcosa non va. Preciso che sia prima che ora uso sempre
win xp home. Che potrebbe essere? Ho letto di problemi simili e la soluzione
era il nome della classe scritto minuscolo, ma ho controllato ed è scritto
giusto (ad es. Pippo). Ohibò, che fare?

Lorenzo <fal...@supereva.it.invalid> ha scritto:

Hai settato il classpath?
Cerca il thread 'x gnazio' in questo ng.
Inviato da 
www.mynewsgate.net

 Cerca il thread 'x gnazio' in questo ng.
Ma se vado nelle variabili d'ambiente, in classpath cosa devo mettere? O
meglio, che percorso devo far trovare? La cartella col .class?

 meglio, che percorso devo far trovare? La cartella col .class?
Personalmente ti sconsiglio di settare il classpath dalle variabili d'ambiente.
Al limite, nelle variabili d'ambiente di sistema, setta solo classpath=.
(classpath uguale punto).
Per lanciarla di sposti nella directory che contiene i .class *se essi non
appartengono ad alcun package* altrimenti nella directory prima quella che
rappresenta il primo package.
Se la tua applicazione fa uso di jar 'esterni' (es. classes12.jar e 
j2ee.jar) prima di lanciarla da finestra di dos dai:
set classpath=%classpath%;classes12.jar;j2ee.jar
o meglio lo metti in un file batch proprio per ogni applicazione.
Spero di essermi spiegato, se mi spieghi la tua situazione ti faccio un
esempio un po' più concreto.
Inviato da 
www.mynewsgate.net

 esempio un po' più concreto.
Guarda, faccio semplice programmazione in java, non uso neanche le applet...
Faccio un esempio, un programma per visualizzare Ciao, è semplicissimo no?
Come nome della classe metto Pippo, scrivo il main, chiudo tutto, poi
compilo e ovviamente è ok (alcuni li copio da un libro, quindi sarebbero
esatto in qualunque caso), mi crea Pippo.class, lo mando in esecuzione
(quindi java Pippo) ma mi da quell'errore (java.lang.NoClassDefFoundError:
Pippo), sia che faccio tutto da shell dos, sia da editor (uso scite). In
passato mi fu detto che tra le variabili d'ambiente Qtjava e classpath
generavano un conflitto, quindi dopo averne eliminata una tutto andò ok. Ma
ora in queste 2 variabili trovo un percorso sbagliato (secondo me, infatti
trovo system32 come cartella finale). Per questo chiedevo cosa mettere in
classpath (se lo chiedo al mio ex prof mi fa rifare l'esame ^_^)

 classpath (se lo chiedo al mio ex prof mi fa rifare l'esame ^_^)
set classpath=<dir>
dove <dir> è la directory contente i tuoi class
e poi lancia java Pippo
Inviato da 
www.mynewsgate.net

 e poi lancia java Pippo
Ovviamente ora è tutto ok, grazie per avermi rinfrescato la memoria. Ma se
prendo un file .class in un'altra directory devo cambiare di nuovo il
percorso del classpath?

 percorso del classpath?
In che senso prendere?
Pippo usa una classe che sta in un'altra directory?
devi *appendere* al classpath esistente l'altra directory:
set classpath=%classpath%;<dir2>
Devi lanciare un'altra app?
Si! Oppure, come già ho detto, setti classpath a dir corrente:
set classpath=.
e ti sposti nella directory che contiene il class da lanciare
Così facendo non lo devi impostare ogni volta se non per aggiungere classi
esterne usate dalla tua app.
Scusa se sono sbrigativo ma devo uscire per vedere la maggica!
Semmai a più tardi.
ciao
 
Inviato da 
www.mynewsgate.net

 ciao
Figurati, adesso ho capito un pò di +. Grazie di tutto, problemi risolti

 percorso del classpath?
Aggiungi il classpath al comando invece che come variabile d'ambiente.
java -classpath directory[;directory] MainClass
java -help per maggiori informazioni :)
Ciao
Matteo
-- 
chi sono e soprattutto chi non sono:
http://www.ilnomedeldominio.it
un piccolo programma per studenti universitari:
http://inutility.ilnomedeldominio.it/imsv/