java:packages:dir_structure

Differences

This shows you the differences between two versions of the page.

Link to this comparison view

Both sides previous revision Previous revision
Next revision
Previous revision
Next revision Both sides next revision
java:packages:dir_structure [2015/02/04 20:21]
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''​.
  
-Ας θεωρήσουμε επίσης ότι το project ''​homework1''​ είναι ένα project που βρίσκεται μέσα στον κατάλογο ''​CE325/​homework1/'',​ σε ένα τυχαίο μονοπάτι του filesystem. Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα **.java** από τα εκτελέσιμα αρχεια **.class**. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους ​+Ας θεωρήσουμε επίσης ότι το project ''​homework1''​ είναι ένα project που βρίσκεται μέσα στον κατάλογο ''​JAVA/​homework1/'',​ σε ένα τυχαίο μονοπάτι του filesystem. Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα **.java** από τα εκτελέσιμα αρχεια **.class**. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους ​
   - ''​src''​ για τον πηγαίο κώδικα και ​   - ''​src''​ για τον πηγαίο κώδικα και ​
   - ''​build''​ για τα εκτελέσιμα αρχεία. ​   - ''​build''​ για τα εκτελέσιμα αρχεία. ​
Line 12: Line 12:
  
 <​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''​, δηλαδή τελικά η κλάση Test.java θα βρίσκεται στον κατάλογο+Προκειμένου να μεταγλωττίσουμε την κλάση ​**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 25: 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''​. Η τελική θέση του εκτελέσιμου **Test.class** είναι ''​build/​gr/​uth/​inf/​ce325/​homework1/​Test.class''​. O java  compiler φτιάχνει την δομή καταλόγου των αρχείων **.class** όμοια με αυτή των αρχείων πηγαίου κώδικα αυτόματα με βάση τα πακέτα στα οποία ανήκουν ​και δεν χρειάζεται να το κάνετε εσείς.+<WRAP tip 80% center round> 
 +Η παράμετρος ​''​-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 ]] |
java/packages/dir_structure.txt · Last modified: 2016/02/26 11:15 (external edit)