User Tools

Site Tools


java:classpath

Differences

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

Link to this comparison view

Both sides previous revisionPrevious revision
Next revision
Previous revision
java:classpath [2016/02/12 13:37] – [Χρήση Classpath - Παράδειγμα 2ο] gthanosjava:classpath [2020/02/11 10:05] (current) – external edit 127.0.0.1
Line 1: Line 1:
-====== JAVA CLASSPATH ======+====== Η μεταβλητή περιβάλλοντος CLASSPATH ====== 
 + 
 +<WRAP important 60% center round> 
 +===Η συγκεκριμένη ενότητα είναι προαιρετική και μπορείτε να την παραλήψετε κατά την ανάγνωση της θεωρείας του μαθήματος.=== 
 +</WRAP>
  
 Ως CLASSPATH ορίζεται το σύνολο των καταλόγων (directories) του συστήματος στα οποία βρίσκονται μεταγλωττισμένες κλάσεις (δηλ **.class** αρχεία) και οι οποίες είναι απαραίτητες για την μεταγλώττιση ή για τη εκτέλεση ενός προγράμματος Java. Με άλλα λόγια το CLASSPATH για κάθε Java πρόγραμμα δείχνει στο σύνολο των βιβλιοθηκών που απαιτούνται. Ως CLASSPATH ορίζεται το σύνολο των καταλόγων (directories) του συστήματος στα οποία βρίσκονται μεταγλωττισμένες κλάσεις (δηλ **.class** αρχεία) και οι οποίες είναι απαραίτητες για την μεταγλώττιση ή για τη εκτέλεση ενός προγράμματος Java. Με άλλα λόγια το CLASSPATH για κάθε Java πρόγραμμα δείχνει στο σύνολο των βιβλιοθηκών που απαιτούνται.
Line 8: Line 12:
  
 Στα πλαίσια του μαθήματος μας ΔΕΝ θα χρειαστεί να αλλάξετε μόνιμα την μεταβλητή CLASSPATH. Εάν επιθυμείτε αλλαγή της μεταβλητής CLASSPATΗ μπορείτε να το κάνετε με την βοήθεια των παρακάτω συνδέσμων. Στα πλαίσια του μαθήματος μας ΔΕΝ θα χρειαστεί να αλλάξετε μόνιμα την μεταβλητή CLASSPATH. Εάν επιθυμείτε αλλαγή της μεταβλητής CLASSPATΗ μπορείτε να το κάνετε με την βοήθεια των παρακάτω συνδέσμων.
-  * http://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.hml+  * https://docs.oracle.com/javase/8/docs/technotes/tools/windows/classpath.html
   * http://javarevisited.blogspot.gr/2011/01/how-classpath-work-in-java.html   * http://javarevisited.blogspot.gr/2011/01/how-classpath-work-in-java.html
  
Line 44: Line 48:
 </code> </code>
  
-, δηλαδή έχουμε+Μετά την μεταγλώττιση λαμβάνουμε τα αρχεία **.class**:
 <code> <code>
 myProject/build/classes/my/package1/Class1.class myProject/build/classes/my/package1/Class1.class
Line 59: Line 63:
 Από εκεί και κάτω, εφόσον ο compiler γνωρίζει το πλήρες όνομα της κλάσης (<package name> + <class name>) αναζητά στο αντίστοιχο path την κλάση που χρειάζεται κάθε φορά.  Από εκεί και κάτω, εφόσον ο compiler γνωρίζει το πλήρες όνομα της κλάσης (<package name> + <class name>) αναζητά στο αντίστοιχο path την κλάση που χρειάζεται κάθε φορά. 
  
-Έτσι αν ο compiler ή το JRE χρειάζεται την κλάση **my.package1.Class1** τότε στο classpath που έχετε ορίσει θα ψάξει για την κλάση με συνολικό path **myProject/build/my/package1/Class1.class**.+Έτσι αν ο compiler ή το JRE χρειάζεται την κλάση **my.package1.Class1** τότε στο classpath που έχετε ορίσει θα ψάξει για την κλάση με συνολικό path **myProject/build/classes/my/package1/Class1.class**.
  
 ===== Χρήση Classpath - Παράδειγμα 2ο ===== ===== Χρήση Classpath - Παράδειγμα 2ο =====
Line 96: Line 100:
  
 <WRAP tip 80% center round> <WRAP tip 80% center round>
-Παρατηρήστε ότι ορίζουμε το **jar** αρχείο και όχι τον κατάλογο στον οποίο περιέχεται. Στο παραπάνω παράδειγμα χρησιμοποιούμε απόλυτα paths για τον ορισμό του CLASSPATH. Φυσικά μπορείτε να χρησιμοποιείται και σχετικά paths, όπως παρακάτω+Παρατηρήστε ότι ορίζουμε το **jar** αρχείο και όχι τον κατάλογο στον οποίο περιέχεται αυτό. Στο παραπάνω παράδειγμα χρησιμοποιούμε απόλυτα paths για τον ορισμό του CLASSPATH. Φυσικά μπορείτε να χρησιμοποιείται και σχετικά paths, όπως παρακάτω
  
 Υποθέτωντας ότι βρίσκεστε στον κατάλογο **/home/username/Java/test/** θα γράφατε. Υποθέτωντας ότι βρίσκεστε στον κατάλογο **/home/username/Java/test/** θα γράφατε.
Line 108: Line 112:
 Εάν θέλετε να ορίσετε στο CLASSPATH πολλαπλά **jar** αρχεία ή directories, τότε μπορείτε να το κάνετε ακολουθώντας τους παραπάνω κανόνες και χωρίζοντας τις εγγραφές με τον χαρακτήρα **':'** στο Linux ή με τον χαρακτήρα **';'** στο λειτουργικό σύστημα Windows. Εάν θέλετε να ορίσετε στο CLASSPATH πολλαπλά **jar** αρχεία ή directories, τότε μπορείτε να το κάνετε ακολουθώντας τους παραπάνω κανόνες και χωρίζοντας τις εγγραφές με τον χαρακτήρα **':'** στο Linux ή με τον χαρακτήρα **';'** στο λειτουργικό σύστημα Windows.
  
-Αν για παράδειγμα, στο παραπάνω παράδειγμα εκτός από τις παραπάνω δύο κλάσεις χρειάζεστε και την κλάση ''gr.ntua.ece.java.common-libs.SinglyNodeList'' που βρίσκεται στο dir+Αν για παράδειγμα, στο παραπάνω παράδειγμα εκτός από τις παραπάνω δύο κλάσεις ''Cone'' και ''Cylinder'' χρειάζεστε και την κλάση ''gr.ntua.ece.java.common-libs.SinglyNodeList'' που βρίσκεται στο jar αρχείο
  
 <code> <code>
Line 194: Line 198:
 </code> </code>
  
-Εναλλακτικά χρησιμοποιήστε το αρχείο ''build.xml'' που επισυνάπτεται για να αυτοματοποιήσετε την παραπάνω διαδικασία με το πρόγραμμα [[http://ant.apache.org/|Ant]]. Για εγκατάσταση του Ant σε Linux εγκαταστήστε το αντίστοιχο πακέτο. Για την εγκατάσταση σε Windows κατεβάστε το πρόγραμμα [[https://code.google.com/p/winant/|WinAnt]].+Εναλλακτικά χρησιμοποιήστε το αρχείο ''build.xml'' που επισυνάπτεται για να αυτοματοποιήσετε την παραπάνω διαδικασία με το πρόγραμμα [[http://ant.apache.org/|Apache Ant]]. Περισσότερα για την μεταγλώττιση με την βοήθεια του Apache Ant μπορείτε να βρείτε στην ενότητα που ακολουθεί.
  
-|Προηγούμενο: [[:java:jar_files | Αρχεία JAR ]] | Επόμενο: [[ java:ant|Αυτόματη μεταγλώττιση με χρήση Apache Ant   ]]|+|Προηγούμενο: [[:java:jar_files | Αρχεία Java Archive (JAR) ]] | [[:toc | Περιεχόμενα]] |Επόμενο: [[ java:ant|Αυτόματη μεταγλώττιση με χρήση Apache Ant   ]]|
  
  
java/classpath.1455284235.txt.gz · Last modified: 2016/02/12 13:37 (external edit)