מדריך ליצירה והפעלת קובץ Jar ב- Java

1. סקירה כללית

בדרך כלל, זה נוח לצרף קבצי Java רבים לקובץ ארכיון יחיד.

במדריך זה נדבר התוכנות והעבודות של עבודה עם צנצנת - או יava ARעירית - קבצים בג'אווה.

באופן ספציפי, ניקח יישום פשוט ונבדוק דרכים שונות לארוז ולהפעיל אותו כצנצנת. אנו נענה גם על כמה סקרנות כמו כיצד לקרוא בקלות את קובץ המניפסט של הצנצנת בדרך.

2. הגדרת תוכנית Java

לפני שנוכל ליצור קובץ צנצנות ניתן להריצה, היישום שלנו צריך לקיים שיעור עם רָאשִׁי שיטה. מחלקה זו מספקת את נקודת הכניסה שלנו ליישום:

חלל ראשי סטטי ציבורי (String [] args) {System.out.println ("Hello Reader Baeldung!"); }

3. פיקוד צנצנת

עכשיו כשכולנו מסודרים בואו נרכיב את הקוד שלנו וניצור את קובץ הצנצנת שלנו.

אנחנו יכולים לעשות זאת עם ג'אוואק משורת הפקודה:

javac com / baeldung / jar / *. java

ה ג'אוואק פקודה יוצרת JarExample.class בתוך ה com / baeldung / jar מַדרִיך. כעת אנו יכולים לארוז את זה לקובץ צנצנת.

3.1. שימוש בברירות המחדל

כדי ליצור את קובץ הצנצנת, אנו נשתמש ב- קַנקַן פקודה.

כדי להשתמש ב- קַנקַן הפקודה ליצור קובץ jar, עלינו להשתמש ב- ג אפשרות לציין שאנחנו יוצרים קובץ ו- f אפשרות לציין את הקובץ:

jar cf JarExample.jar com / baeldung / jar / *. class

3.2. קביעת המחלקה הראשית

מועיל למניפסט קובץ הצנצנת לכלול את המחלקה הראשית.

המניפסט הוא קובץ מיוחד בצנצנת הממוקמת ב- META-INF ספריה ושמה MANIFEST.MF. קובץ המניפסט מכיל מידע מטא מיוחד על קבצים בתוך קובץ הצנצנת.

כמה דוגמאות למה שאנחנו יכולים להשתמש בקובץ מניפסט כוללות הגדרת נקודת הכניסה, הגדרת פרטי גרסה והגדרת מסלול הכיתה.

באמצעות ה אפשרות, אנו יכולים לציין את נקודת הכניסה שלנו ואת קַנקַן הפקודה תוסיף אותו לקובץ המניפסט שנוצר.

בוא נרוץ קַנקַן עם נקודת כניסה שצוינה:

jar cfe JarExample.jar com.baeldung.jar.JarExample com / baeldung / jar / *. class

3.3. עדכון התוכן

נניח שעשינו שינוי באחד מהשיעורים שלנו והרכבנו אותו מחדש. כעת עלינו לעדכן את קובץ הצנצנת שלנו.

בואו נשתמש ב- קַנקַן פקודה עם u אפשרות לעדכן את תוכנו:

jar uf JarExample.jar com / baeldung / jar / JarExample.class

3.4. הגדרת קובץ מניפסט

במקרים מסוימים, ייתכן שיהיה עלינו לשלוט יותר במה שנמצא בקובץ המניפסט שלנו. ה קַנקַן פקודה מספקת פונקציונליות לספק מידע מניפסט משלנו.

בואו נוסיף קובץ מניפסט חלקי בשם example_manifest.txt ליישום שלנו לקביעת נקודת הכניסה שלנו:

מחלקה ראשית: com.baeldung.jar.JarExample

המידע המניפסט שאנו מספקים יתווסף למה שמייצרת פקודת ה- jar, ולכן זו השורה היחידה שאנחנו צריכים בקובץ.

חשוב שנסיים את קובץ המניפסט שלנו עםשורה חדשה. ללא השורה החדשה, הקובץ המניפסט שלנו יתעלם בשקט.

עם הגדרה זו, בואו ניצור את הצנצנת שלנו שוב באמצעות מידע המניפסט שלנו ו- M אוֹפְּצִיָה:

jar cfm JarExample.jar com / baeldung / jar / example_manifest.txt com / baeldung / jar / *. class

3.5. תפוקה מילולית

אם אנחנו רוצים מידע נוסף מתוך קַנקַן אנחנו יכולים פשוט להוסיף את v אפשרות לרבב.

בואו ננהל את שלנו קַנקַן פקודה עם v אוֹפְּצִיָה:

צנצנת cvfm JarExample.jar com / baeldung / jar / example_manifest.txt com / baeldung / jar / *. המחלקה הוסיפה מניפסט והוסיפה: com / baeldung / jar / JarExample.class (in = 453) (out = 312) (deflated 31% )

4. שימוש ב- Maven

4.1. תצורת ברירת מחדל

אנחנו יכולים גם להשתמש ב- Maven כדי ליצור את הצנצנת שלנו. מאחר ו- Maven מעדיף כינוס על פני תצורה, אנו יכולים פשוט להריץ חבילה ליצירת קובץ הצנצנת שלנו.

חבילת mvn

כברירת מחדל, קובץ הצנצנת שלנו יתווסף ל- יַעַד התיקייה בפרויקט שלנו.

4.2. המציין את המעמד הראשי

אנו יכולים גם להגדיר את Maven כך שיציין את המחלקה הראשית ויצירת קובץ צנצנת להפעלה.

 org.apache.maven.plugins maven-jar-plugin $ {maven-jar-plugin.version} com.baeldung.jar.JarExample 

5. שימוש באביב המגף

5.1. שימוש ב- Maven וברירות מחדל

אם אנו משתמשים באביב אתחול עם Maven, ראשית עלינו לאשר כי הגדרת האריזה שלנו מוגדרת קַנקַן ולא מִלחָמָה בשלנו pom.xml קוֹבֶץ.

4.0.0 קפיצת מגף קפיץ

ברגע שנדע שזה מוגדר, נוכל להפעיל את חֲבִילָה מטרה:

חבילת mvn

5.2. הגדרת נקודת הכניסה

הגדרת המחלקה העיקרית שלנו היא המקום בו אנו מוצאים הבדלים בין יצירת צנצנת עם יישום Java רגיל לבין צנצנת שומן ליישום Spring Boot. ביישום Spring Boot, המעמד העיקרי הוא למעשה org.springframework.boot.loader.JarLauncher.

למרות שהדוגמה שלנו איננה אפליקציית Spring Boot, נוכל להגדיר אותה בקלות ליישום קונסולת Boot Boot.

יש לציין את המחלקה העיקרית שלנו כשיעור ההתחלה:

 com.baeldung.jar.JarExample 

אנו יכולים גם להשתמש ב- Gradle כדי ליצור צנצנת שומן של Spring Boot.

6. הפעלת הקנקן

עכשיו שיש לנו את קובץ הצנצנת שלנו, אנחנו יכולים להריץ אותו. אנו מריצים קבצי צנצנות באמצעות ה- ג'אווה פקודה.

6.1. מסיק את המעמד הראשי

מכיוון שהקדמנו ודאגנו שהמחלקה העיקרית שלנו מוגדרת במניפסט, אנחנו יכולים להשתמש ב- -קַנקַן אפשרות של ג'אווה פקודה להריץ את היישום שלנו בלי לציין את המחלקה הראשית:

java -jar JarExample.jar

6.2. ציון המחלקה הראשית

אנו יכולים גם לציין את המחלקה הראשית כאשר אנו מריצים את היישום שלנו. אנחנו יכולים להשתמש ב- -cp אפשרות להבטיח שקובץ הצנצנת שלנו נמצא בכיתת הכיתה ואז לספק את המחלקה העיקרית שלנו ב- package.className פוּרמָט:

java -cp JarExample.jar com.baeldung.jar.JarExample

שימוש במפרידי נתיבים במקום בפורמט החבילה עובד גם:

java -cp JarExample.jar com / baeldung / jar / JarExample

6.3. רשימת תוכן הצנצנת

אנחנו יכולים להשתמש ב- קַנקַן פקודה לרשימת התוכן של קובץ הצנצנת שלנו:

צנצנת tf JarExample.jar META-INF / META-INF / MANIFEST.MF com / baeldung / jar / JarExample.class

6.4. צפייה בקובץ המניפסט

מכיוון שזה יכול להיות חשוב לדעת מה יש אצלנו MANIFEST.MF קובץ, בואו נסתכל על דרך מהירה וקלה בה אנו יכולים להציץ על התוכן מבלי לעזוב את שורת הפקודה.

בואו נשתמש ב- לִפְתוֹחַ פקודה עם אפשרות -p:

unzip -p JarExample.jar META-INF / MANIFEST.MF גרסת המניפסט: 1.0 נוצר על ידי: 1.8.0_31 (תאגיד אורקל) מחלקה ראשית: com.baeldung.jar.JarExample

7. מסקנה

במדריך זה, הגדרנו יישום Java פשוט עם רָאשִׁי מעמד.

ואז בדקנו שלוש דרכים ליצירת קבצי jar: שימוש ב- קַנקַן פקודה, עם Maven ועם יישום Maven Spring Boot.

לאחר שיצרנו את קבצי הצנצנות שלנו, חזרנו לשורת הפקודה והפעלנו אותם עם מחלקה ראשית מוסברת ומוגדרת.

למדנו גם כיצד להציג את תוכן הקובץ וכיצד להציג את תוכנו של קובץ יחיד בתוך צנצנת.

הן דוגמת Java הרגילה והן דוגמת Boot Boot זמינים ב- GitHub.