Originariamente inviato da pieroJdk
1- la cartella prog devo metterla all'interno della cartella bin o no???
No affatto. Non dovresti mai mettere roba "tua" (sorgenti, progetti, ecc...) sotto la "home" di un JDK/JRE.

La puoi mettere dovunque. (vedi anche risposta appena sotto)


Originariamente inviato da pieroJdk
2- devo creare una variabile d'ambiente con il percorso della cartella prog?? e se si, è una variabile d'utente o di sistema???
Sì e no. Nel senso che qui si va su una questione che riguarda il "classpath" e i package.

Il classpath è semplicemente un elenco di directory/jar che la JVM usa per cercare le classi. E si può impostare in diversi modi/livelli.
I package sono quelli che dichiari nel sorgente con package bla.bla; all'inizio. E la regola fondamentale sui package è che si devono sempre "riflettere" nella struttura delle cartelle (anche dentro un jar)!!

Immagina una classe Prova nel package prog.io (quindi nome qualificato: prog.io.Prova). Il file Prova.class compilato deve stare sotto un path prog/io, questo è tassativo. Anche il sorgente sarebbe meglio che sia sotto una prog/io.
Supponi che tutto sia sotto una directory C:\Esempi

Si avrebbe: C:\Esempi\prog\io\Prova.java. Il Prova.class andrà poi a finire sotto la 'io'.
Il classpath deve essere tale per cui la JVM, conoscendo il package e sapendo bene che deve "riflettersi" nella struttura delle cartelle, possa trovare Prova.class. Quindi in classpath ci deve essere, in un modo o nell'altro, C:\Esempi. Ho detto in un modo o nell'altro perché puoi specificarlo come path assoluto oppure come path "relativo" alla directory corrente.

Per farti capire il processo facendolo tutto da riga di comando:

codice:
cd C:\Esempi
set CLASSPATH=.
javac prog\io\Prova.java
java prog.io.Prova
In classpath c'è il '.' cioè = directory "corrente". Visto che mi sono già spostato in C:\Esempi, allora .... questa è in classpath!
Il resto è semplicemente la compilazione/avvio supponendo che Prova abbia il solito main().
A javac va passato un "path", a java il nome qualificato della classe (non un path!).

Più chiaro ora?