This shows you the differences between two versions of the page.
Both sides previous revision Previous revision Next revision | Previous revision Next revision Both sides next revision | ||
java:packages:dir_structure [2015/01/23 06:34] gthanos |
java:packages:dir_structure [2015/09/19 04:15] gthanos |
||
---|---|---|---|
Line 3: | Line 3: | ||
Μέχρι τώρα είδαμε ότι κάθε κλάση στη Java αποτελεί ένα ξεχωριστό αρχείο. Για παράδειγμα η κλάση ''myFirstClass'' θα βρίσκεται στο αρχείο με το όνομα ''myFirstClass.java''. Η εισαγωγή των πακέτων στην γλώσσα Java, εκτός από την ονοματοδοσία των αρχείων καθορίζει και τον κατάλογο (directory) μέσα στο οποίο θα πρέπει να βρίσκονται. | Μέχρι τώρα είδαμε ότι κάθε κλάση στη Java αποτελεί ένα ξεχωριστό αρχείο. Για παράδειγμα η κλάση ''myFirstClass'' θα βρίσκεται στο αρχείο με το όνομα ''myFirstClass.java''. Η εισαγωγή των πακέτων στην γλώσσα Java, εκτός από την ονοματοδοσία των αρχείων καθορίζει και τον κατάλογο (directory) μέσα στο οποίο θα πρέπει να βρίσκονται. | ||
- | Ως παράδειγμα, θα θεωρήσουμε ξανά την κλάση Test του homework1 του τρέχοντος μαθήματος (CE325). Με βάση τα παραπάνω διαμορφώνεται το πακέτο με όνομα ''gr.uth.inf.ce325.homework1'' μέσα στο οποίο βρίσκεται η κλάση ''Test''. | + | Ως παράδειγμα, θα θεωρήσουμε ξανά την κλάση Test του homework1 του τρέχοντος μαθήματος (JAVA). Με βάση τα παραπάνω διαμορφώνεται το πακέτο με όνομα ''gr.uth.inf.ce325.homework1'' μέσα στο οποίο βρίσκεται η κλάση ''Test''. |
- | Ας θεωρήσουμε επίσης ότι το homework1 είναι ένα ξεχωριστό project που βρίσκεται μέσα στον κατάλογο ''CE325/Homework1/'' (ο οποίος με την σειρά του βρίσκεται σε ένα τυχαίο μονοπάτι του filesystem). Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα **.java** από τα εκτελέσιμα αρχεια **.class**. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους ''src'' για τον πηγαίο κώδικα και ''build'' για τα εκτελέσιμα αρχεία. Τελικά, έχουμε τους καταλόγους | + | Ας θεωρήσουμε επίσης ότι το project ''homework1'' είναι ένα project που βρίσκεται μέσα στον κατάλογο ''JAVA/homework1/'', σε ένα τυχαίο μονοπάτι του filesystem. Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα **.java** από τα εκτελέσιμα αρχεια **.class**. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους |
+ | - ''src'' για τον πηγαίο κώδικα και | ||
+ | - ''build'' για τα εκτελέσιμα αρχεία. | ||
+ | |||
+ | Τελικά, έχουμε τους καταλόγους | ||
<code> | <code> | ||
- | CE325/Homework1/src | + | JAVA/homework1/src <-- πηγαίος κώδικας *.java |
- | CE325/Homework1/build | + | JAVA/homework1/build <-- εκτελέσιμα αρχεία *.class |
</code> | </code> | ||
- | Προκειμένου να μεταγλωττίσουμε την κλάση ''gr.uth.inf.ce325.homework1.Test'', αυτή θα πρέπει να βρίσκεται στον κατάλογο ''gr/uth/inf/ce325/homework1/'' μέσα στον φάκελο ''src'', δηλαδή συνολικά θα έχουμε. | + | Προκειμένου να μεταγλωττίσουμε την κλάση **gr.uth.inf.ce325.homework1.Test.java**, αυτή θα πρέπει να βρίσκεται στον κατάλογο **gr/uth/inf/ce325/homework1/** μέσα στον φάκελο **src**, δηλαδή τελικά η κλάση Test.java θα βρίσκεται στον κατάλογο |
<code> | <code> | ||
- | CE325/Homework1/src/gr/uth/inf/ce325/homework1/Test.java | + | JAVA/Homework1/src/gr/uth/inf/ce325/homework1/Test.java |
</code> | </code> | ||
Line 21: | Line 25: | ||
<code> | <code> | ||
- | cd CE325/Homework1/ | + | cd JAVA/Homework1/ |
javac -d ./build/ src/gr/uth/inf/ce325/homework1/Test.java | javac -d ./build/ src/gr/uth/inf/ce325/homework1/Test.java | ||
</code> | </code> | ||
- | To directive ''-d ./build/'' δείχνει που θέλουμε να τοποθετήσουμε τελικά τα εκτελέσιμα αρχεία ''*.class''. | + | <WRAP tip 80% center round> |
- | Η τελική θέση του εκτελέσιμου **Test.class** είναι ''build/gr/uth/inf/ce325/homework1/Test.class''. O java compiler φτιάχνει την δομή καταλόγου των αρχείων **.class** αυτόματα (δεν χρειάζεται να το κάνετε εσείς) με βάση την δομή των αρχείων **.java**. | + | Η παράμετρος ''-d ./build/'' χρησιμοποιείται για να δηλώσουμε που θέλουμε να τοποθετήσουμε τελικά τα εκτελέσιμα αρχεία ''*.class''. Το αρχείο class θα τοποθετηθεί μέσα στον κατάλογο ''./build''. Η τελική θέση του εκτελέσιμου **Test.class** είναι ''build/gr/uth/inf/ce325/homework1/Test.class''. O java compiler φτιάχνει την δομή καταλόγου των αρχείων **.class** όμοια με αυτή των αρχείων πηγαίου κώδικα αυτόματα με βάση το πακέτο στο οποίο ανήκει η κάθε κλάση και δεν χρειάζεται να το κάνετε εσείς. |
+ | </WRAP> | ||
- | |Προηγούμενο: [[ :java:packages:using | Χρήση πακέτων ]] | Επόμενο: | | + | |Προηγούμενο: [[ :java:packages:using | Χρήση πακέτων ]] | Επόμενο: [[ :java:classpath | Η μεταβλητή περιβάλλοντος CLASSPATH ]] | |