This is an old revision of the document!
Δομή των αρχείων Java
Μέχρι τώρα είδαμε ότι κάθε κλάση στη Java αποτελεί ένα ξεχωριστό αρχείο. Για παράδειγμα η κλάση myFirstClass
θα βρίσκεται στο αρχείο με το όνομα myFirstClass.java
. Η εισαγωγή των πακέτων στην γλώσσα Java, εκτός από την ονοματοδοσία των αρχείων καθορίζει και τον κατάλογο (directory) μέσα στο οποίο θα πρέπει να βρίσκονται.
Ως παράδειγμα, θα θεωρήσουμε ξανά την κλάση Test του homework1 του τρέχοντος μαθήματος (JAVA). Με βάση τα παραπάνω διαμορφώνεται το πακέτο με όνομα gr.uth.inf.ce325.homework1
μέσα στο οποίο βρίσκεται η κλάση Test
.
Ας θεωρήσουμε επίσης ότι το project homework1
είναι ένα project που βρίσκεται μέσα στον κατάλογο JAVA/homework1/
, σε ένα τυχαίο μονοπάτι του filesystem. Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα .java από τα εκτελέσιμα αρχεια .class. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους
src
για τον πηγαίο κώδικα καιbuild
για τα εκτελέσιμα αρχεία.
Τελικά, έχουμε τους καταλόγους
JAVA/homework1/src <-- πηγαίος κώδικας *.java JAVA/homework1/build <-- εκτελέσιμα αρχεία *.class
Προκειμένου να μεταγλωττίσουμε την κλάση gr.uth.inf.ce325.homework1.Test.java, αυτή θα πρέπει να βρίσκεται στον κατάλογο gr/uth/inf/ce325/homework1/ μέσα στον φάκελο src, δηλαδή τελικά η κλάση Test.java θα βρίσκεται στον κατάλογο
JAVA/Homework1/src/gr/uth/inf/ce325/homework1/Test.java
Η παραπάνω κλάση μεταγλωττίζεται με μία δήλωση της μορφής
cd JAVA/Homework1/ javac -d ./build/ src/gr/uth/inf/ce325/homework1/Test.java
Η παράμετρος -d ./build/
χρησιμοποιείται για να δηλώσουμε που θέλουμε να τοποθετήσουμε τελικά τα εκτελέσιμα αρχεία *.class
. Το αρχείο class θα τοποθετηθεί μέσα στον κατάλογο ./build
. Η τελική θέση του εκτελέσιμου Test.class είναι build/gr/uth/inf/ce325/homework1/Test.class
. O java compiler φτιάχνει την δομή καταλόγου των αρχείων .class όμοια με αυτή των αρχείων πηγαίου κώδικα αυτόματα με βάση το πακέτο στο οποίο ανήκει η κάθε κλάση και δεν χρειάζεται να το κάνετε εσείς.
Προηγούμενο: Χρήση πακέτων | Επόμενο: Η μεταβλητή περιβάλλοντος CLASSPATH |