Java/Classi e oggetti: differenze tra le versioni
Contenuto cancellato Contenuto aggiunto
Riga 146:
Compilando “a mano” la procedura diventa trasparente, più chiara, almeno per quanto riguarda la formazione di pacchetti di classi del programmatore.
I nomi del package devono avere una corrispondenza diretta nel filesystem: ad esempio, se si vuole archiviare il file helloWorld.class nella cartella “saluti” del file system,
Entra in gioco un percorso parziale che comincia dalla root e si interrompe al livello superiore più vicino alla directory del package, il percorso a monte della cartella “saluti”
La JVM
Ora poniamo che sia "/home/giovanni/mieclassi/", questo indirizzo lo dobbiamo specificare quando compiliamo le classi da archiviare,
Si realizza con l'opzione "-d" di "javac" seguito dal CLASSPATH, in questo modo:
l'indirizzo /home/giovanni/mieclassi/ deve già esistere realmente sul fyle system▼
▲ripeto che l'indirizzo /home/giovanni/mieclassi/ deve già esistere realmente sul fyle system
<source lang=java>
Line 163 ⟶ 165:
Il compilatore leggerà nell'istruzione "package" il nome "saluti", creerà la directory e la accoderà. Automaticamente ci sarà /home/giovanni/mieclassi/saluti e lì metterà HelloWorld.class.
In questo caso è il compilatore che ha creato la cartella "saluti".
Non dobbiamo fare altro. Avremo archiviato la classe HelloWorld nel package saluti.
Questo indirizzo CLASSPATH dovrà essere
Il package può avere anche più directory. Nel caso produciamo molte classi esse infatti andranno stipate in cartelle diverse ed il nome della cartella, chiaramente, indicherà il contenuto.
Con più directory
Mettiamo che voglio fare delle classi di saluto simili ad HelloWorld ma in molte lingue e tirarle fuori, quando ne ho bisogno, secondo la nazionalità degli utenti del programma.
Faremo questi file, notare il nome del package che ora sono con una directory e e una sottodirectory separate dal punto:
<source lang=java>
package saluti.inghilterra;
Line 203 ⟶ 206:
Sul disco preparerò la directory “saluti” con all'interno le cartelle “inghilterra”, “francia”, “italia”, tutte e tre queste cartelle sono allo stesso livello sottodirectory di saluti.
Non cambia niente per la prima parte dell'indirizzo, il classpath, di cui parlavamo sopra che rimane invariato.
Un'altra cartella ancora.
|