Newsgroup: it.comp.java
Titolo: Aiuto compliazione package

Stiamo sviluppando un'applicazione per un esame, e finora siamo
arrivata ad avere sette classi.
Essendo ancora abbastanza inesperti ci risulta difficile capire il
meccanismo
dei package, ma abbiamo la necessità di utilizzarlo.
In pratica compilando con il solo javac i file .java tutti nella
stessa
directory, senza avere indicato nella prima riga nessuna appartenenza
a qualche
package (direttiva "package esempio;"), funziona tutto normalmente, e
le sette
compilazioni hanno tutte esito positivo.
Inserendo però in cima ad ognuno dei sette listati la direttiva
"package esempio;" e compilando con l'opzione "-d" (e indicando dopo
di questa la directory dove vogliamo la radice del package, per
esempio C:\prova) succede una cosa strana: quattro dei sette file
vengono compilati correttamente e i file .class vengono inseriti in
C:\prova\esempio, mentre non siamo riusciti a compilare gli altri tre,
pur avendo essi la stessa indicazione di package e gli stessi import
("import esempio.*;") e avendo anche settato il classpath.
Il bello è che gli errori erano tutti di tipo "cannot resolve symbol",
e i "symbol" erano oggetti del tipo delle classi già compliate (le
prime quattro) e che già si trovavano nella directory prestabilita:
insomma, il compilatore ci dice che non posso compliare il file A.java
perche non c'è il file B.class che invece è già nel package! Inoltre,
cosa ancora più preoccupante, ci sono altri errori dello stesso tipo
riguardanti oggetti inerenti agli stessi tre file che non vengono
compilati, cioè il compilatore ci dice anche che non posso compilare
A.java perchè non c'è C.java, e quando vado a compilare C.class ci
dice che non può farlo perchè... non c'è A.class!!! E questa
francamente è una cosa che ci fa impazzire!
Qualcuno ha qualche suggerimento?
Grazie per l'attenzione, ciao! GePs

 Grazie per l'attenzione, ciao! GePs
Avete provato a cancellare prima tutti i file .class dalla directory dei 
file .java? Altrimenti il compilatore trova quelli vecchi e può dare 
problemi di incompatibilità.
Giusto un tentativo tra i vari suggerimenti possibili...
ciao :)
pole
-- 
Note: Some input words use a deprecated author.
Note: Read with -deprecation to understand.
http://web.tiscali.it/meridies

 ("import esempio.*;") e avendo anche settato il classpath.
Allora, i file .java sono nella directory C:\prova\esempio e sono dichiarati
nel pachage esempio. Questo comando dovrebbe funzionare:
cd C:\prova 
javac -classpath . esempio\*.java
Fammi sapere
Ciao
Matteo

 dei package, ma abbiamo la necessità di utilizzarlo.
http://space.tin.it/computer/csadun/javafaq.html
-- 
Fighting for peace is like fucking for virginity
ObjectZone - 
http://space.tin.it/computer/csadun

...


 compilatore mi dice comunque che non riesce a trovarli: 
Eppure il sistema è proprio quello, controlla la sintassi e ricordati che
devi aggiungere un ";" tra le directory se sei su Windows ed un ":" se sei
su Linux (su Mac non ne ho idea ;)
quindi qualcosa del genere:
cd C:\prova
javac -classpath .;C:\percorsocartella1;C:\percorsocartella2 esempio\*.java
Ciao
Matteo

 
Sě, ho messo i ;/:, ma il problema rimane...
Ricapitolando: devo usare delle classi che non fanno parte di alcun 
package, e che ho messo in una certa directory. Per lavorare comodamente 
in una directory mia diversa da quella, dovrei importarli, giusto? e 
come faccio se questi non sono organizzati in package? 
Alla fine, volendone fare uno mio di package, l'unico modo per riuscire 
a compilare tutto correttamente č mettere tutto il codice java dentro 
dentro la stessa directory, dare a tutte le classi la stessa 
appartenenza di package, e compilare con il comando che mi hai dato tu. 
Fortunatamente non ho piů un bisogno reale di compilare in un package, 
ma vorrei impararlo per la prossima volta... sono sicuro perň che se mi 
venissero fornite delle classi organizzate un po' meglio, la cosa non 
avrebbe creato problemi!
Comunque appena avrň un po' di tempo farň un po' di prove e ti faccio 
sapere. Grazie mille dell'attenzione, ciao!!! :)