[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 ונוכל להריצו באחת משתי הדרכים הבאות:
- דאבל-קליק על הקובץ.
- משורת הפקודה נוכל לכתוב:
java -jar hello.jar
סיכום
קובץ Jar מהווה דרך מצויינת להפיץ את התוכניות שלכם. קובץ Jar הניתן להרצה (Executable Jar) מהווה דרך מצויינת להפיץ ולהריץ אותן.
מדריך נוסף שבוודאי יעניין אתכם הוא המדריך ל-יצירת EXE ב-Java.
לא הבנתי איפה אני רושם את זה ?
"עת יש ליצור את ה-Jar על ידי הפקודה הבאה:
jar cmf hello.mf hello.jar hello.class "
צריך לפתוח Command Line (נכנסים ל-Start ואז Run ואז כותבים CMD ולוחצים enter).
כעת בתיבה השחורה שנפתחה(ה-command line), יש לרשום את הפקודה שמצויינת בפוסט.
כשאני עושה את השלבים בפוסט אני מקבל הודעה(בשורת הפקודה):
jar is not recognized as an internal or external comman,
operable program or batch file
לאחר מכן איני מצליח להפעיל את קובץ ה-"JAR".
עזרו לי בבקשה.
תודה מראש.
@סנופקין, דבר ראשון אתה צריך את ה-JDK של Java מותקן. אם הוא כבר מותקן, אז אתה צריך לסדר את הגדרות ה-Path שלך כמו שכתוב ב-התקנת Java.
הקובץ jar.exe אמור להיות כאן (X.Y.Z כמובן שונים במחשב שלך...):
c:\Program Files\java\jdkX.Y.Z\bin\jar.exe
עשיתי את הכל ומתי שאני מנסה להריץ את הקובץ hello.jar בשתי האופציות אני מקבל את ההודעה failed to load main-class manifest attribute from c:\hello.jar
מה לעשות?
אממ...
אותה בעיה כמו ש"דוד"^ אמר.
Manifest-Version: 1.0
Main-Class: hello
איפה אני בדיוק רושם את השורה הזאת כאילו בתוך ה JC או שאני עושה קובץ טקסט ושומר בשם hello.mk?
דוד ומשה, תנסו להוסיף שורה אחת ריקה בסוף הקובץ hello.mk ואז תחזרו על הפקודה
jar cmf hello.mk hello.jar hello.class
נשמע מטורף... אבל זה מה שצריך. אני אעדכן את הפוסט.
@דניאל, האפשרות השנייה היא נכונה: צור קובץ טקסט ושמור אותו כ-hello.mk
עשיתי את זה וזה עבד תודה על זה אבל עכשיו מופיע לי בעיה חדשה אחרי שנוצר ה קובץ jar ואני מנסה להיכנס אליו מופיעה לי הודעה
failed to load main-class manifest attribut
חחח סליחה על זה דפדפתי למעלה וראיתי את התשובה תודה על העזרה :)
האם מישהו יכול לעזור לי לארוז תקיה שלמה של קבצים לקובץ jar, זה היה קובץ שלם שרציתי לעשות בו שינויים ואחרי שעשיתי שינויום אני לא מוצא דרך להחזיר אותו לקובץ אחד. אשמח אם מישהו יוכל לעזור.
זהו ישום לטלפון נוקיה.
תודה על העזרה..
טל, אני חייב לציין שהמדריכים שלך מצויינים ומובנים במיוחד!
יש לי בעיה קטנה, יצרתי את קובץ הJar אני לוחץ עליו, ו... כלום לא קורה. אני נותן לך הורדה לקובץ כדי לראות מה הבעיה(Jar)
http://www.f2h.co.il/4336839504540
דרך אגב, התוכנה הזו נבנתה שאתה צריך להכניס מספר שלם ולהקיש אנטר, עוד מספר שלם ואנטר, וזה מבצע *%+- את האופטרוים ההם.
תיקון הורדה:
http://www.f2h.co.il/5168264517561
גם לי זה קורה אבל זה פועל דרך הcmd
איפה שמים את הפקודה
אם אני רוצה לתת קובץ jar לחבר שלי ,הוא צריך להוריד jvm כדי להריץ אותו?