paol_pal ha scritto:
Sto provando a compilare, ma non riesco farlo nel modo giusto sicuramente.
Posso includere più file.jar utilizzando *.jar oppure devo scrivere il percorso di ognuno?
Il "classpath" è semplicemente un ELENCO di directory e/o file .jar (quanti ne vuoi/servono) che sostanzialmente fanno da "basi" per rintracciare le classi.
Se in classpath ci fosse (e directory corrente es. C:\prove)
.;C:\blabla\lib1.jar;C:\blabla\lib2.jar
Allora se la JVM deve rintracciare una classe com.esempio.Prova fa le seguenti verifiche:
1) Esiste un C:\prove\com\esempio\Prova.class ?
2) Esiste un com\esempio\Prova.class dentro C:\blabla\lib1.jar ?
3) Esiste un com\esempio\Prova.class dentro C:\blabla\lib2.jar ?
Se uno di questi (il primo che trova) è ok, bene. Altrimenti NoClassDefFoundError.
Questo è il motivo per cui i package si DEVONO sempre "riflettere" nella struttura delle directory. Data una classe com.esempio.Prova la JVM la traduce in un path parziale com\esempio\Prova.class (quindi si aspetta questa struttura) e poi cerca questo path "sotto" tutte le basi elencate in classpath.
Se hai capito questo, hai compreso il classpath.