Originariamente inviato da Iwk_Batterio
Ho trovato la riga corretta (dopo innumerevoli tentativi ):

javac -d classes -classpath . source\dacompilare.java -sourcepath source
Uhm ... non proprio.
Se ti trovi in 'progetto' (dove c'è il bat), mettere come classpath '.' non serve. Mica è quella la directory dove ci sono i package "radice"!!! (sono classes e source che contengono i package "radice", cioè pacchetto1 e pacchetto2).

E devi tenere presente che la directory che specifichi con -d non entra nel classpath. Mettendo solo -sourcepath (e con quel classpath . inutile) compila ma .... (ri)compila tutti i sorgenti sempre, ogni volta.

La documentazione della Sun mi pare chiara sul punto -classpath e/o -sourcepath:

If you set the -sourcepath option, the compiler searches the indicated path for source files; otherwise the compiler searches the user class path for both class files and source files.
Originariamente inviato da Iwk_Batterio
Quello che non ho capito è perché devo mettere il puntino separato da spazio su -classpath visto che mi hai detto che classpath vuole un solo parametro...
Il classpath è una lista di file jar e directory. Es.:

-classpath dir1;dir2\xyz;blabla.jar

(questo su Windows. Su linux ci vuole : invece di ; e / invece di \ )

Poi è ovvio che a javac vengono passati fisicamente 2 argomenti: uno "-classpath" e l'altro "dir1;dir2\xyz;blabla.jar"

Ma ti è chiara la differenza tra gli argomenti, detto il più generale possibile, sulla linea di comando e una lista di file/dir che compone il classpath?