Newsgroup: it.comp.java
Titolo: java e class da me generate

Salve a tutti, mi sono avvicianto alla programmazione java da circa 10 
giorni e la trovo molto interessante. Sto usando come testo introduttivo 
il testo di Thomas Wu Introduzione alla programmazione a oggetti in java 
della Mc-Graw-Hill. Finora mi sembra vada tutto bene, riesco a fare le 
prime classi che funzonano. Ho solo un piccolo problema. Il libro 
introduce alla programmazione java per piccoli passi fornendo delle 
classi già fatte, io ho fatto altre classi pero' quando voglio 
utilizzare sia le classi del libro che quelle mie devo creare una 
sottodirectory e inserire li le classi del libro e quelle mie. Ad 
esempio se io sto creando la classe xxxxxx.java e sto lavorando nella 
directory xxxxxx e le prime righe del file xxxxxx.java sono
import zzz.*; // classi el libreo
import www.*;// classi personali
debbo inserire nella directory xxxxxx/zzz/ le classi del libro
debbo inserire nella rirectory xxxxxx/www/le classi personali
e questo per ogni lavoro che sto facendo.
Premesso che utilizzo Sun One come editor è possibile configurare l'ide 
al fine di non dover creare per ogni classe queste directory?
Grazie dell'interessamento
Roberto

 ha scritto nel messaggio
news:PGSJa.114516$Ny5.3...@twister2.libero.it...


Beh, a dire il vero, non esiste alcun obbligo a livello di sorgente, esiste
SOLO a livello di bytecode.
Nessuno ti impedisce di scrivere tutte i sorgenti in una unica directory. Ci
penserà poi il compilatore a generare l'output automaticamente all'interno
delle directory corrette. (basta sapergli dire come e dove)
Esempio.
1) Crea sotto C:\ una directory qualunque (ad esempio C:\cipirimerlo)
In una qualsiasi altra dir temporanea crea queti 3 files
--- StupidaClasse1.java ---
package moron.test.classe1;
public class StupidaClasse1 {
  // do nothing
}
--- --- ---
--- StupidaClasse2.java ---
package moron.test.classe1.classe2;
public class StupidaClasse2 {
  // do nothing
}
--- --- ---
--- StupidaClasse3.java ---
package moron.test.classe3;
public class StupidaClasse3 {
  // do nothing
}
--- --- ---
A questo punto compila utilizzando l'opzione -d
javac -d C:/cipirimerlo *.java
E vai a vedere nella directory C:\cipirimerlo: avrai la struttura da te
voluta con i package delle classi, a partire dalla sottodirectory "moron".
Ovvio che questa cosa la metto tra i miei "bad practice" e, soprattutto, ti
voglio vedere a scrivere 2 Classi con lo stesso nome (ma, ovviamente,
appartenenti a package differenti)
    regards,
        Kazuma
I've got nothing against God. It's his fan club I can't stand.
Alex "Kazuma" Garbagnati, 
http://www.kazuma.net
EJB & Tomcat jGuru FAQ Manager, 
http://www.jGuru.com
Tutor "Progetto Scuole", 
http://www.JIA.it
Java Italian Association - SUN - MIUR

 e questo per ogni lavoro che sto facendo.
Il problema e' nel classpath: se non impostato di default si riferisce
alla directory corrente. Dunque, per trovare la classe zzz.Classe la
JVM cerca "./zzz/Classe.class".
Puoi modificare il classpath tramite l'opzione "-cp" dei comandi java,
col quale e' possibile specificare un elenco di cartelle e/o JAR che
contengono i .class delle classi che vuoi utilizzare: se ad esempio le
classi del libro sono in C:\classi-libro, compila con:
javac -cp c:\classi-libro;. *.java
ed esegui con
java -cp c:\classi-libro;. MainClass
In quanto le classi che hai appena fatto si trovano nella directory
corrente (".")
-- 
__/\__ * this mail has been written by Talpa Stellare
\ TS / * che da piccolo una volta e' morto.
 |/\|  * icq# 78630739 - togli i caratteri maiuscoli x e-mail