java:packages:dir_structure

Differences

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

Link to this comparison view

java:packages:dir_structure [2016/02/12 13:09]
gthanos
java:packages:dir_structure [2016/02/26 11:15]
Line 1: Line 1:
-====== Μεταγλώττιση κλάσεων που ανήκουν σε πακέτα ====== 
  
-Μέχρι τώρα είδαμε ότι κάθε κλάση στη Java αποτελεί ένα ξεχωριστό αρχείο. Για παράδειγμα η κλάση ''​myFirstClass''​ θα βρίσκεται στο αρχείο με το όνομα ''​myFirstClass.java''​. Η εισαγωγή των πακέτων στην γλώσσα Java, εκτός από την ονοματοδοσία των αρχείων καθορίζει και τον κατάλογο (directory) μέσα στο οποίο θα πρέπει να βρίσκονται. 
- 
-Ως παράδειγμα,​ θα θεωρήσουμε ξανά την κλάση Test του homework1 του τρέχοντος μαθήματος (CE210). Με βάση τα παραπάνω διαμορφώνεται το πακέτο με όνομα ''​ce210.homework1''​ μέσα στο οποίο βρίσκεται η κλάση ''​Test''​. Η ενδεικτική κλάση **Test** δίνεται παρακάτω 
- 
-<code java Test.java>​ 
-package ce210.homework1;​ 
-public class Test { 
-  String test;  ​ 
-  public Test(String s) { test = s; } 
-  public String toString() { return test; } 
-} 
-</​code>​ 
- 
-Ας θεωρήσουμε επίσης ότι όλα τα αρχεία της συγκεκριμένης εργασίας βρίσκονται μέσα στον κατάλογο ''​project1/'',​ σε ένα τυχαίο μονοπάτι του filesystem. Ιδανικά θα θέλαμε να διαχωρίσουμε τα αρχεία πηγαίου κώδικα **.java** από τα εκτελέσιμα αρχεια **.class**. Για τον λόγο αυτό δημιουργούμε δύο υποκαταλόγους ​ 
-  - ''​src''​ για τον πηγαίο κώδικα και ​ 
-  - ''​build''​ για τα μεταγλωττισμένα αρχεία. ​ 
- 
-Τελικά,​ έχουμε τους καταλόγους ​ 
- 
-<​code>​ 
-project1/​src 
-project1/​build 
-</​code>​ 
- 
-Προκειμένου να μεταγλωττίσουμε την κλάση ''​ce210.homework1.Test'',​ αυτή θα πρέπει να βρίσκεται στον κατάλογο ''​ce210/​homework1/''​ μέσα στον φάκελο ''​src'',​ δηλαδή τελικά η κλάση **Test.java** θα βρίσκεται στον κατάλογο 
- 
-<​code>​ 
-project1/​src/​ce210/​homework1/​Test.java 
-</​code>​ 
- 
-Υποθέτοντας ότι μεταβαίνουμε μέσα στον κατάλογο project1, η παραπάνω κλάση μεταγλωττίζεται με μία δήλωση της μορφής 
- 
-<​code>​ 
-cd project1/ 
-javac -d ./build/ src/​ce210/​homework1/​Test.java ​ 
-</​code>​ 
- 
-<WRAP tip 80% center round> 
-To directive ''​-d ./​build/''​ χρησιμοποιείται για να δηλώσουμε που θέλουμε να τοποθετήσουμε τελικά τα εκτελέσιμα αρχεία ''​*.class''​. Η τελική θέση του εκτελέσιμου **Test.class** είναι ​ στον κατάλογο ''​project1/​build''​. Επειδή το μεταγλωττισμένο αρχείο θα πρέπει να βρίσκεται εσωτερικά στον κατάλογο ''​ce210/​homework1/''​ τελικά καταλήγουμε το πλήρες path του μεταγλωττισμένου αρχείου να είναι ''​project1/​build/​ce210/​homework1/​Test.class''​. O java  compiler φτιάχνει την δομή καταλόγου των αρχείων **.class** __αυτόματα με βάση το πακέτο στο οποίο ανήκουν__. 
-</​WRAP>​ 
- 
-|Προηγούμενο:​ [[ :​java:​packages:​using | Χρήση πακέτων ]] | Επόμενο:​ [[ :​java:​jar_files | Αρχεία Java Archive (JAR) ]] | 
java/packages/dir_structure.txt · Last modified: 2016/02/26 11:15 (external edit)