יצירת Executable Jar ב-Java

[27 באפריל 2008] [17 תגובות]

קובץ Jar (קיצור ל-Java Archive) הוא קובץ שבעזרתו ניתן לארוז את כל הקבצים של התוכנית שלכם (קבצי ה-class, תמונות, קבצי שמע...) ובכך להקל על הפצת התוכניות שלכם.

אחד הדברים השימושיים בקבצים אלו, הוא האפשרות להפוך קבצי Jar לקבצים הניתנים להרצה - Executable Jar. דאבל-קליק על קבצים כאלו בעלי סיומת jar. יגרמו לתוכנית לפעול.

כיצד יוצרים Executable Jar ?

נניח ויש בידינו קובץ בשם hello.class שבתוכו יש פונקציית main שיודעת להדפיס למסך את המשפט המפורסם Hello World. ניצור קובץ בשם hello.mk שמכיל את הטקסט:

Manifest-Version: 1.0
Main-Class: hello

במידה ואתם מעוניינים לארוז מספר קבצים, הערך של Main-Class (כרגע הוא hello) יסביר לקובץ ה-Jar איזה קובץ יש להריץ ראשון. קובץ זה חייב לכלול פונקציית main.

כעת יש ליצור את ה-Jar על ידי הפקודה הבאה:

jar cmf hello.mk hello.jar hello.class

הפקודה יוצרת את הקובץ hello.jar שמכיל את הקובץ hello.class (יכולנו לכתוב כאן שמות של הרבה קבצים או פשוט class.*) ופועל לפי ההוראות של hello.mk.

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

  1. דאבל-קליק על הקובץ.
  2. משורת הפקודה נוכל לכתוב:
    java -jar hello.jar

סיכום

קובץ Jar מהווה דרך מצויינת להפיץ את התוכניות שלכם. קובץ Jar הניתן להרצה (Executable Jar) מהווה דרך מצויינת להפיץ ולהריץ אותן.

מדריך נוסף שבוודאי יעניין אתכם הוא המדריך ל-יצירת EXE ב-Java.

אם אהבת את הפוסט, אני שולח מדי פעם למייל עוד פוסטים מעניינים שלא תמיד מגיעים להתפרסם באתר. אתה מוזמן להצטרף לרשימה:
(אני שונא ספאם. אני מבטיח לעולם לא לשלוח משהו לא מעניין)

17 תגובות

  1. בלהבלה | 10/15/2008 6:21:13 AM

    לא הבנתי איפה אני רושם את זה ?

    "עת יש ליצור את ה-Jar על ידי הפקודה הבאה:

    jar cmf hello.mf hello.jar hello.class "

  2. טל | 10/15/2008 12:41:47 PM

    צריך לפתוח Command Line (נכנסים ל-Start ואז Run ואז כותבים CMD ולוחצים enter).

    כעת בתיבה השחורה שנפתחה(ה-command line), יש לרשום את הפקודה שמצויינת בפוסט.

  3. סנופקין | 2/9/2009 10:46:48 PM

    כשאני עושה את השלבים בפוסט אני מקבל הודעה(בשורת הפקודה):

     

    jar is not recognized as an internal or external comman,

    operable program or batch file

     

     לאחר מכן איני מצליח להפעיל את קובץ ה-"JAR".

    עזרו לי בבקשה.

     תודה מראש.

  4. טל | 2/10/2009 5:11:36 AM

    @סנופקין, דבר ראשון אתה צריך את ה-JDK של Java מותקן. אם הוא כבר מותקן, אז אתה צריך לסדר את הגדרות ה-Path שלך כמו שכתוב ב-התקנת Java.

    הקובץ jar.exe אמור להיות כאן (X.Y.Z כמובן שונים במחשב שלך...):

    c:\Program Files\java\jdkX.Y.Z\bin\jar.exe

  5. דוד | 8/28/2009 5:30:43 AM

    עשיתי את הכל ומתי שאני מנסה להריץ את הקובץ hello.jar בשתי האופציות אני מקבל את ההודעה failed to load main-class manifest attribute from c:\hello.jar

    מה לעשות?

  6. משה | 12/11/2009 7:16:27 AM

    אממ...

    אותה בעיה כמו ש"דוד"^ אמר.

  7. דניאל | 12/19/2009 2:54:50 PM

    Manifest-Version: 1.0

    Main-Class: hello  

    איפה אני בדיוק רושם את השורה הזאת כאילו בתוך ה JC או שאני עושה קובץ טקסט ושומר בשם hello.mk?

  8. טל | 12/21/2009 11:24:29 AM

    דוד ומשה, תנסו להוסיף שורה אחת ריקה בסוף הקובץ hello.mk ואז תחזרו על הפקודה

    jar cmf hello.mk hello.jar hello.class 

    נשמע מטורף... אבל זה מה שצריך. אני אעדכן את הפוסט.

     

  9. טל | 12/21/2009 11:26:08 AM
    @דניאל, האפשרות השנייה היא נכונה: צור קובץ טקסט ושמור אותו כ-hello.mk
  10. דניאל | 12/21/2009 2:01:16 PM

    עשיתי את זה וזה עבד תודה על זה אבל עכשיו מופיע לי בעיה חדשה אחרי שנוצר ה קובץ jar ואני מנסה להיכנס אליו מופיעה לי הודעה

    failed to load main-class manifest attribut

  11. דניאל | 12/21/2009 3:47:09 PM

    חחח סליחה על זה דפדפתי למעלה וראיתי את התשובה תודה על העזרה :)

  12. נועם | 3/7/2010 10:34:20 AM

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

    זהו ישום לטלפון נוקיה.

     

    תודה על העזרה.. 

  13. מוטי | 7/9/2010 7:48:38 AM

    טל, אני חייב לציין שהמדריכים שלך מצויינים ומובנים במיוחד!

    יש לי בעיה קטנה, יצרתי את קובץ הJar אני לוחץ עליו, ו... כלום לא קורה. אני נותן לך הורדה לקובץ כדי לראות מה הבעיה(Jar)

     http://www.f2h.co.il/4336839504540

    דרך אגב, התוכנה הזו נבנתה שאתה צריך להכניס מספר שלם ולהקיש אנטר, עוד מספר שלם ואנטר,  וזה מבצע *%+- את האופטרוים ההם.

     

  14. מוטי | 7/9/2010 7:51:58 AM

    תיקון הורדה:

     http://www.f2h.co.il/5168264517561

     

  15. עמינדב | 10/5/2010 7:29:29 AM
    גם לי זה קורה אבל זה פועל דרך הcmd
  16. kaze | 6/21/2012 6:29:59 AM
    איפה שמים את הפקודה
  17. הראל | 12/5/2013 10:19:40 AM
    אם אני רוצה לתת קובץ jar לחבר שלי ,הוא צריך להוריד jvm כדי להריץ אותו?

התגובות נעולות