מהו קובץ JAR?
קובץ עם סיומת jar הוא קובץ Java Archive המכיל קבצים רבים ושונים הקשורים לאפליקציות כקובץ בודד. פורמט קובץ זה נוצר כדי להפחית את מהירות הטעינה של יישומון Java שהורד בדפדפן באמצעות עסקת HTTP, על ידי הימנעות מיצירת חיבורי HTTP מרובים. קובץ JAR בודד יכול להכיל קבצי Java Class (.class), images ו-sounds. פריטים בודדים בתוך קובץ JAR יכולים להיות חתומים דיגיטלית על ידי מפתח האפליקציה כדי לאמת את מקורם. קבצי JAR משמשים באופן קבוע ליצירת ממשקי API פונקציונליים המכילים פונקציונליות ספציפית הקשורה לאותו API.
פורמט קובץ JAR
קובצי JAR מבוססים על [פורמט קובץ ה-ZIP] הפופולרי (/he/compression/zip/) המאחסן את קובצי התוכן הבודדים שלו בקובץ בודד. פורמט קובץ JAR תומך בדחיסות, וכתוצאה מכך גודל קובץ קטן יותר להורדה, ולכן משפר עוד יותר את זמן ההורדה. מפרטי קובץ JAR מאת Oracle מספק פרטים מלאים על המפרט הפנימי של קובצי JAR.
קובץ המניפסט
כאשר נוצר קובץ JAR, נוצר בתוכו אוטומטית קובץ מניפסט המכיל את מידע המטא נתונים על התוכן של קובץ JAR. קובץ זה מציג את התוכן שנארז בתוך קובץ JAR. קובץ Manifest טיפוסי נראה כדלקמן המציג את התיקיות והמחלקות הכלולים בקובץ JAR.
META-INF/
META-INF/MANIFEST.MF
pack/
pack/class1.class
pack/class2.class
..
..
מפרטי מניפסט
מפרטי מניפסט מוגדרים על ידי Oracle כדלקמן.
manifest-file
: קטע ראשי בשורה חדשה *מקטע יחיד
main-section
: info version newline *main-attribute
version-info
: Manifest-Version: גרסה-מספר
version-number
: ספרה+{.digit+}*
main-attribute
: (כל תכונה ראשית לגיטימית) שורה חדשה
individual-section
: שם: ערך newline *perentry-attribute
perentry-attribute
: (כל תכונת perentry לגיטימית) שורה חדשה
קו חדש
: CR LF | LF | CR (לא אחריו LF)
digit
: {0-9}
JAR בר הפעלה
קובצי JAR יכולים להכיל גם יישום שניתן להפעיל על ידי Java Virtual Machine (JVM) בדומה לכל יישום אחר במערכת ההפעלה Microsoft Windows. במקרה זה, ה-JVM צריך לדעת על נקודת הכניסה של האפליקציה שהיא כל מחלקה עם שיטה ראשית של ריקון סטטי ציבורי. קובץ המניפסט מזהה מחלקה כזו עם הכותרת ‘Main-Class’ בפורמט הבא:
Main-Class: com.example.MyClassName