This is an old revision of the document!
Table of Contents
Αρχεία Java Archive (JAR)
Τα αρχεία JAR μας δίνουν την δυνατότητα να ομαδοποιήσουμε πολλαπλά αρχεία .class σε ένα αρχείο (archive). Ένα αρχείο JAR περιέχει σε συμπιεσμένη μορφή τα εξής:
- .class files
- Συμπληρωματικά αρχεία που συνδέονται με Java applets και applications.
- Το αρχείο MANIFEST.MF για το οποίο θα μιλήσουμε στη συνέχεια.
Το βασικό πλεονέκτημα των αρχείων JAR είναι ότι αντικαθιστούν πολύπλοκες ιεραρχίες πακέτων και κλάσεων με ένα μόνο αρχείο. Επίσης, το αρχεία JAR είναι συμπιεσμένα, επομένως καταλαμβάνουν λιγότερο χωρο και μεταφέρονται πιο γρήγορα όταν πρόκειται για web applications. Παρακάτω θα δούμε πως δημιουργούμε ή μεταβάλουμε JAR αρχεία και θα εξηγήσουμε τι είναι το MANIFEST.MF αρχείο και γιατί χρησιμοποιείται.
Δημιουργία JAR files
Η βασική εντολή για την δημιουργία ενός jar file είναι η παρακάτω:
jar cf jar-file input-file(s)
Επανερχόμενοι στο παράδειγμα του :java:packages:using, ας υποθέσουμε ότι θέλουμε να δημιουργήσουμε ένα jar αρχείο που να περιέχει όλα τα .class αρχεία. Το αρχείο αυτό θα το βάλουμε μεσα στον κατάλογο homework1
.
cd homework1/src/ jar cvf homework1.jar ./ mv homework1.jar ../
Εναλλακτικά, θα μπορούσαμε να γράψουμε
cd homework1 jar cvf homework1.jar -C src/ ./
Η παραπάνω εντολή εκτελεί την εντολή jar μέσα στο directory src/
και αποθηκεύει το jar file στο αρχείο homework1. Τα υπόλοιπα options έχουν ως εξής.
Option | Περιγραφή |
---|---|
v | Verbose: Δείχνει ποια αρχεία προστίθενται μέσα στο jar file κατά την δημιουργία του |
c | Create: |
0 | no compression added to the jar file |
M | το Manifest αρχείο που προστίθεται δεν θα προστεθεί |
m | Χρησιμοποιείται για να προστεθεί ειδική πληροφορία στο Manifest αρχείο, ως εξής jar cmf existing-manifest jar-file input-file(s) |
C | αλλαγή του τρέχοντος καταλόγου πριν την εκτέλεση της εντολής jar |
Βλέποντας τα περιεχόμενα ενος JAR file
Για να δείτε τα περιεχόμενα ενός JAR file αρκεί να χρησιμοποιήσετε την εντολή
jar tf jar-file
Για να δείτε τα περιεχόμενα του homework1.jar αρκεί να γράψετε
jar tf homework1.jar
Εξαγωγή των περιεχομένων αρχείων ενός JAR file
Για να εξάγετε τα περιεχόμενα ενός JAR file αρκεί να χρησιμοποιήσετε την εντολή
jar xf jar-file
Για να εξάγετε τα περιεχόμενα του homework1.jar αρκεί να γράψετε
jar xf homework1.jar
Εκτελώντας λογισμικό σε αρχεία JAR
Μπορείτε να εκτελέσετε ένα πρόγραμμα που βρίσκεται σε ένα αρχείο JAR χρησιμοποιώντας την παρακάτω εντολή
java -jar jar-file
To flag -jar
ενημερώνει το περιβάλλον εκτέλεσης ότι η εφαρμογή είναι πακεταρισμένη μέσα σε ένα αρχείο jar. Μπορείτε να χρησιμοποιήσετε μόνο ένα αρχείo jar για την παραπάνω δήλωση. Για να εκτελεστεί με επιτυχία το παραπάνω πρόγραμμα απαραίτητη προϋπόθεση είναι το περιβάλλον εκτέλεσης να γνωρίζει ποια κλάση από όσες περιέχονται μέσα στο jar αρχείο είναι η κλάση από την οποία ξεκινά η εφαρμογή. Η κλάση εκκίνησης είναι η κλάση που περιέχει μία συνάρτηση
public static void main(String args[]) { .... }
Για να προσδιορίσετε την κλάση εκκίνησης μέσα στο jar αρχείο, αρκεί να προσθέσετε μέσα στο αρχείο MANIFEST.MF την ακόλουθη γραμμή
Main-Class: myMainClass
Για την δημιουργία ενός JAR αρχείου που περιέχει στο MANIFEST.MF αρχείo την παραπάνω γραμμή αρκεί να κάνουμε τα εξής.
- Δημιουργούμε ένα αρχείο text (π.χ. manifest-info.txt) που περιέχει την γραμμή που θέλουμε να προσθέσουμε στο MANIFEST.MF αρχείο δηλ.
Main-Class: myMainClass
. - Στη συνέχεια δημιουργούμε jar αρχείο ως εξής
jar cvfm homework1.jar manifest-info.txt ./
. Παραρητήστε την προσθήκη του option 'm' σε συνδυασμό με την χρήση του αρχείου που δημιουργήσαμε και περιέχει το extra header για το MANIFEST.MF.
Αν δεν θέλετε να φτιάξετε αρχείο txt θα μπορούσατε να γράψετε το εξής.
jar cvfe homework1.jar myMainClass ./