ראשי
פרק 1
פרק 2
פרק 3
פרק 4
פרק 5
פרק 6
פרק 7
פרק 8

פרק 1 - הקדמה


תוכן הפרק:

מהי Java?
פרק זה
יתרונות Java
סביבות פיתוח
התקנת JDK
תכנות והרצה בSDK
TextPad
JCreator
Visual Cafe



מהי ג'אווה?

ג'אווה הינה שפה תכנות מוכוונת-עצמים (Object Oriented) אשר צוברת פופולריות בשנים האחרונות. זו שפה עילית, אשר מתיימרת להחליף את שפת ++C כשפה המועדפת על ידי המתכנתים. השפה פותחה ע"י חברת סאן (Sun), ויתרונה הבולט הוא בכך שהיא תואמת לכל מערכות ההפעלה. נרחיב על כך בהמשך.


למעלה

פרק זה

בפרק זה נתמקד במעט רקע היסטורי, ובהרבה רקע תכנותי, כלומר הסבר על כמה סביבות עבודה מומלצות לתכנות בג'אווה.


למעלה

יתרונות ג'אווה

אי תלות בפלטפורמה שעליה התכנית רצה

המטרה העיקרית שעמדה לנגד עיניהם של מפתחי השפה הייתה ליצור שפה אשר מאפשרת לכתוב את התכנית פעם אחת ולאחר מכן להריץ אותה בכל מחשב, מבלי לבצע שינויים. קובץ קוד המקור של תכנית JAVA (קובץ טקסט עם סיומת java) מתורגם ע"י הקומפיילר ל Java Byte Code, שנשמר בקובץ ששמו זהה לשמו של קובץ קוד המקור, והסיומת שלו class. קובץ ה class ניתן להרצה בכל מחשב, הודות ל JVM - Java Virtual Machine.
ה JVM היא תכנית, שנכתבה במיוחד למערכת הפעלה מסוימת (קיימות גרסאות של ה JVM כמעט לכל מערכת הפעלה קיימת). תכנית זו מסוגלת לתרגם את קובץ ה Java Byte Code (הקובץ עם הסיומת class) לשפת המכונה של המחשב שבו היא פועלת. בדרך זו מושגת אחידות שלא הייתה קיימת בשפות אחרות.
ב ++C, למשל, ניתן היה לכתוב תכנית במחשב אחד ולהריצה במחשב שונה (כלומר, עם מערכת הפעלה שונה, או ארכיטקטורה שונה) רק לאחר קומפילציה מחדש של קוד המקור על המחשב השונה (ולאחר שינויי קוד שיתאימו לקומפיילר של המחשב השונה). ב JAVA מתבצע הקימפול פעם אחת בלבד, וההרצה יכולה להתבצע בכל מחשב, עם כל מערכת הפעלה - בתנאי שהוא מריץ JVM מתאים.
בדרך זו, השיגה שפת JAVA רמת תאימות גבוהה לא רק בכל הקשור ל source code, אלא גם בכל הקשור לקובץ המוכן להרצה. יתרון זה הוא יתרון משמעותי ביותר כשמדובר בשפה המיועדת, בין השאר, ליישומי אינטרנט.

שפה קלה ופשוטה ללמידה ולשימוש - הדמיון ל ++C

כדי לפשט ולהקל על לימוד השפה, התבססו מפתחיה על ++C. כידוע, ++C היא אחת השפות הפופולריות ביותר ומשום הדמיון שיש בינה לבין JAVA, למתכנתי ++C קל לעבור ל JAVA. כללי התחביר זהים כמעט לחלוטין, ותפיסת התכנות מונחה העצמים ממשיכה להתקיים. כדי להקל על השימוש ב JAVA, הנושאים הבעייתיים שקיימים ב ++C, כגון עבודה עם מצביעים וטיפול בזיכרון שמוקצה באופן דינמי, לא אומצו.
בנוסף, ג'אווה מופצת עם מחלקות רבות מובנות, אשר מספקות מתודות נוחות כמעט לכל הדרוש לשם תכנות אפליקציה. כך המתכנת יכול להתרכז בפיתוח הדרוש לו, והוא לא נדרש "להמציא את הגלגל מחדש" בכל הקשור בטיפול בארועים שגרתיים.

קלות בפיתוחן של אפליקציות בתחום התקשורת

ב JAVA קיימות מחלקות מוכנות אשר כוללות מתודות/פונקציות שמקלות על כתיבתן של תכניות אשר מתקשרות עם תכניות אחרות (במחשבים שונים). המחלקות המוכנות ב JAVA כוללות תמיכה במגוון רחב של פרוטוקולים ( HTTP, TCP/IP, UDP, SMTP וכיו"ב).

הרצת תהליכונים במקביל

JAVA מאפשרת לפתח תכניות, אשר יש בהן מספר רצפי פעולה שמתבצעים בו זמנית ("תכנות מקבילי"). אפשרות זו קיימת גם בשפות אחרות, אך אופן מימושה ב JAVA פשוט וקל. כמו כן, ב JAVA קל ופשוט להשתמש ב"תכנות מבוזר", כלומר כתיבתן של תכניות אשר חלקים שונים מתוכן מתבצעים במחשבים נפרדים, תוך כדי העברת אינפורמציה בינם לבין עצמם. כל המחלקות המוכנות בג'אווה נכתבו תוך מחשבה על תכנות מקבילי, כך שהן "Threads-Saves", כלומר בעיות כמו "בעיית הקטע הקריטי", "dead-lock" וכו' נלקחו בחשבון בעת פיתוחה.

מגוון רחב של ייעודים

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


למעלה

סביבות פיתוח

סביבת הפיתוח JDK

סביבת הפיתוח הבסיסית של JAVA נקראת JDK - Java Development Kit - וכוללת את התוכנה והכלים להם זקוק מתכנת JAVA בשביל להדר, לנפות משגיאות ולהריץ תוכניות JAVA. גרסה עדכנית של JDK ניתן להשיג חינם ברשת האינטרנט (הסבר מפורט בהמשך).
בשנת 1995 הופיעה הגרסה הראשונה של JAVA, שנקראה בשם JDK 1.0. גרסאות תיקון אשר הוצאו לגרסה זו נקראו בשמות JDK 1.0.1, JDK 1.0.2 וכו'.
כעבור פרק זמן, הופיעה הגרסה השניה של JAVA, שנקראה בשם JDK 1.1. גם לגרסה זו פורסמו גרסאות תיקון אשר נקראו בשמות JDK 1.1.1, JDK 1.1.2 וכו'.
בדצמבר 1998 הופיעה הגרסה השלישית של JAVA, שנקראה בשם JDK 1.2. כיוון שבין גרסה זו לגרסה הקודמת חלו שינויים די רבים, שונה השם של JAVA לשם החדש: JAVA 2. גם בגרסה השלישית היו מספר גרסאות תיקון שנקראו, בדומה לגרסאות התיקון שהוצאו לגרסאות הקודמות בשמות: JDK 1.2.1 וכו'.
במרץ 2000 הופיעה הגרסה הרביעית של JAVA, תחת השם JDK 1.3. מרבית השינויים בין גרסה זו לגרסה הקודמת מתמקדים באופן פעולת ה JVM, כולל JVM יעיל באופן מיוחד. כיום (ספטמבר 2001) הגירסה העדכנית היא 1.3.1, כאשר קיימת גם גירסת בטא של JDK 1.4.


למעלה

התקנת JDK

הדבר הראשון שיש לעשותו לפני תחילת העבודה בג'אווה הוא להוריד את ה JDK העדכני מהאתר של חברת SUN (לחלונות או ללינוקס). ניתן גם להוריד את התיעוד, או להשתמש בתיעוד המקוון באתר.
לאחר הורדת ה JDK למחשב המקומי, יש להתקין אותו לפי ההוראות באתר (לחלונות או ללינוקס). עקרונית, כל שיש לעשות הוא להריץ את הקובץ שהורד. מומלץ גם לשנות, לפי ההוראות באתר, את ה path הקיים.
סביבת הפיתוח הבסיסית כוללת את כל מה שדרוש כדי לפתח תכניות ב JAVA, והשימוש בהן כולל את השימוש בעורך טקסט פשוט. ניתן גם להשתמש בסביבות פיתוח ויזואליות ויותר נחמדות - ונרחיב עליהן מיד. עם זאת, כדאי לדעת, שלא קיימות תכניות שניתן לפתח באמצעות סביבות פיתוח ויזואליות שלא ניתנות לפיתוח באמצעות עורך טקסט פשוט.


למעלה

תכנות והרצה באמצעות ה JDK הסטנדרטי

תכנות
לשם כתיבת קובץ קוד מקור נשתמש בכל תוכנת עורך תמלילים סטנדרטית. ניתן להשתמש בפנקס הרשימות של חלונות (Note Pad), בעורך הסטנדרטי של יוניקס (VI), או במעבדי תמלילים מתקדמים יותר, כמו Emacs ליוניקס, TextPad (עליו נרחיב בהמשך) וכיו"ב.
יש לשים לב למספר דגשים בסיסיים:

  • הקובץ יהיה קובץ טקסט פשוט, אשר יישמר בסיומת java.
  • כל קובץ יכיל מחלקה אחת בלבד (לא כולל תתי-מחלקות), אשר שמה יהיה כשם הקובץ.
  • בקובץ המכיל את המחלקה הראשית, כלומר זו שאמורה לפעול עם הרצת התוכנית, תהיה פונקציית main, שתיקרא ע"י מערכת ההפעלה בעת אתחול התכנית. הגדרת הפונקציה היא:
(public static void main (String[ ] args

קימפול
לאחר סיום כתיבת הקוד, יש לקמפל אותו.
בסביבת יוניקס:    
  בשורת הפקודה נכתוב: javac FileName.java
  ונסקור את התוצאות.  
בסביבת חלונות:    
  נפתח חלון דוס (חשוב: לא להפעיל את המחשב במצב דוס! רק לפתוח חלון דוס!) מתוך: התחל, תוכניות, הפניה ל MS-DOS, נעבור לתיקייה ששם שמרנו את קובץ הקוד, נקליד: javac FileName.java
  ונסקור את התוצאות.  

הערה: הקובץ FileName.java הוא הקובץ המכיל את המחלקה FileName, אשר מכילה את פונקציית ה main.

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

שגיאת קומפילציה

קל לראות כי השגיאה היא בקובץ copyURL.java, בשורה 8, והשגיאה היא חוסר בסוגר עגול בסוף השורה.
לאחר תיקון השגיאות ושמירת הקובץ המתוקן יש לקמפל מחדש!

הרצה
תוכניות שנכתבו בJAVA מתחלקת למספר סוגים, אנו נדון בשני העיקריים שבהם:
Java Applications - תוכניות שמסוגלות לרוץ לבד, באמצעות ה JVM, כמו תוכניות שנכתבו בשפה 'רגילה'.
Java Applets - תוכניות שמיועדות לרוץ מתוך מסמך HTML, ולכן ניתן להריץ אותן רק באמצעות דפדפן.

הרצת Applications:
בסביבת יוניקס:    
  בשורת הפקודה נכתוב: java FileName
בסביבת חלונות:    
  בחלון הדוס נקליד: java FileName

פקודה זו תעלה את ה JVM שתריץ את התוכנית.

הרצת Applets:
ראשית יש ליצור קובץ HTML, שיריץ את ה Applet שיצרנו:
בקובץ HTML נוסיף את השורה הבאה:

<applet code =" FileName.class "</applet>

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

appletviewer FileName.html

כאשר FileName.html הוא הקובץ המכיל את הקריאה לאפלט.


למעלה

תוכנת TextPad - מעבד תמלילים תומך JDK

תוכנת TextPad הינה תוכנת עיבוד תמלילים מתקדמת, אשר מקלה על תכנות בשפות שונות, כגון: HTML, CPP, וכן JAVA. יתרונה הוא בכך שהיא מדגישה את המילים השמורות בשפה (ברגע שהיא מזהה קובץ עם סיומת java), מדגישה סוגריים, מסדרת את הכתיבה בהיררכיה מקובלת וכו'. בנוסף, היא מתממשקת עם ה JDK המותקן במחשב, ומאפשרת לקמפל ולהריץ תוכניות JAVA ישירות ממעבד התמלילים, בלי צורך לצאת ל DOS.

התקנת TextPad לעבודה עם ג'אווה
לאחר התקנת TextPad ופתיחת קובץ java ניתן יהיה לראות את המילים השמורות מודגשות, בדומה לתמונה זו:

לחץ להגדלה

ניתן לשנות את הגדרות הצבעים מתוך Configure, Preferences:

שינוי צבעי הפונט

ע"מ להגדיר ל TextPad לעבוד עם ה JDK (לאחר שהוא כבר מותקן במחשב!) יש להכנס לסעיף Tools תחת Configure, Preferences, לבחור Add ומשם את JDK Commands:

הוספת פקודות JDK

כעת נוספו 3 אופציות לתפריט tools, אשר מאפשרות לקמפל ולהריץ את התוכנית.

תפריט Tools הכולל את הפקודות החדשות

בעת קימפול קובץ יפתח חלון חדש, בשם command results, ובו יופיעו תוצאות הקימפול, אשר היו מופיעות אחרת בחלון ה DOS ממנו היינו מריצים את javac. בעת הרצה יפתח חלון דוס, ובו יופיעו תוצאות ההרצה ושגיאות ההרצה (Exceptions) אם קיימות.


למעלה

תוכנת JCreator - סביבת עבודה מקצוענית

תוכנת JCreator הינה סביבת עבודה טבעית עבור מי שרגיל לתכנת ב ++C תחת ++Visual C. התקנת JCreator היא אוטומטית לחלוטין, ומתבצעת באמצעות אשף התקנה פשוט. בסיום ההתקנה ניתנת האפשרות לנתב את התוכנה לקבצי התיעוד של JDK (במידה ואלו מותקנים כבר במחשב, כמובן), וכך היא משתמשת למעשה בתיעוד המקורי של SUN בצורה אינטגרלית. כדי לקבל עזרה על מתודה/מחלקה כל שיש לעשות הוא לסמן את המילה וללחוץ על Ctrl+F1.

יתרונות JCreator
התוכנה, בדומה ל ++Visual C, מספקת "מבט מחלקתי" - חלון קטן אשר מציג את כל המשתנים והמתודות השייכים למחלקה המוצגת בחלון הראשי, ומאפשר קפיצה אליהם בלחיצת עכבר, ו"סביבת עבודה" - חלון המציג את כל הקבצים הכלולים בפרוייקט הנוכחי, בצד החלון הראשי המציג את הקוד עצמו.

לחץ להגדלה

בנוסף, התוכנה מספקת תכונת "השלמה אוטומטית" עבור מתודות ומשתנים - הן עבור מחלקות מוכנות מראש, דוגמת String, System וכיו"ב, והן עבור מחלקות השייכות לפרוייקט, אשר הוגדרו ע"י המתכנת. בהשלמה כזו גם מתקבל "tool tip" עם סוג הארגומנטים הנדרשים למתודה.

השלמה אוטומטית

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

בחירת סוג הפרוייקט

קימפול והרצה עם JCreator
כותבי JCreator נצמדו לסטנדרטים של ++Visual C גם בכל הקשור לקימפול ולהרצה, תוך התאמתם לג'אווה. לחיצה על מקש F7 מקמפלת את הפרוייקט הפתוח, גם אם הקובץ המכיל את פונקציית main סגור. לחיצה על F5 מריצה את הפרוייקט הפתוח, תוך שימוש ב JVM עבור אפליקציות, או appletviewer עבור אפלטים.
בעת קימפול פרוייקט יפתח חלון רוחבי קטן, שוב - בדומה ל ++Visual C, אשר בו יוצגו הודעות השגיאה, עם פירוט רב: מהות השגיאה, באיזו מחלקה, מה צריך להיות וכו'. גם כאן, לחיצה על שורת ההודעה תקפיץ את החלון הראשי למקום.

דיבגינג - Debugging
יתרון חשוב נוסף של סביבת JCreator על פני הסביבות הקודמות הוא אופציית ה Debugging הכלולה בגירסת JCreator Pro (שעולה כסף…). אופציה זו מדמה את ה JVM ומאפשרת להריץ את האפליקציה צעד אחרי צעד - תוך מעקב מדוייק אחרי התוצאות. Debugging מתבצע באמצעות לחיצה על Ctrl+F5.


למעלה

סביבת עבודה גרפית - Visual Café

ויז'ואל קפה הינה אולי סביבת העבודה הנוחה ביותר למתכנתי ג'אווה, אשר רוצים קלות ונוחות בממשק הגרפי (GUI). יתרונה העיקרי הוא בכך שהיא פותרת את המתכנת מכל הקשור בהוספת הרכיבים הגרפיים. ניתן פשוט "לצייר" רכיב גרפי - והתוכנה דואגת להוסיף את שורות הקוד הנדרשות, להוסיף "מאזינים" וכיו"ב.
התוכנה פותחה ע"י חברת סימנטק (מפתחת נורטון אנטיוירוס) ולאחרונה (ינואר 2000) נרכשה ע"י חברת webgain, אשר ממשיכה לפתח אותה מאז. הגירסה העדכנית של התוכנה (שאליה מוביל הלינק למעלה) - גירסה 4.5 - מיועדת לחלונות NT ומעלה. לפיכך אנו נשתמש בהדגמה כאן בגירסה ישנה יותר (Symantec's Visual Café v2.1) המיועדת לחלונות 95. עקרונות השימוש, בכל אופן, זהים.
נציין רק כי בעת התקנת ויז'ואל קפה מותקנים גם קבצי העזרה של JDK. לשם שימוש בהם יש לסמן את המילה המבוקשת (הקלקה כפולה) בחלון המראה את הקוד וללחוץ F1. ייפתח חלון חדש, ובו תיאור המחלקה/מתודה המבוקשת.

לחץ להגדלה

מבנה החלון
החלון הראשי של ויז'ואל קפה מורכב, למעשה, ממספר חלונות קטנים:

לחץ להגדלה

החלון העליון, ובו לחצני הפקודות: לחץ להגדלה
(מודגש: באדום - לחצני הוספת רכיבים גרפיים, כגון כפתורים, תיבות רשימה וכו'; בכחול: לחצן הוספת מאזין/קישור; בירוק: כפתור הקימפול וההרצה).

החלון השמאלי, המייצג את הפרוייקט: החלון השמאלי

החלון המרכזי, המייצג מבט גרפי של הקובץ הפעיל: לחץ להגדלה

והחלון הימני, המייצג את פרטי הפריט הבחור: לחץ להגדלה

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

לחץ להגדלה

עם בחירת האופציה הרצויה נקבל את החלון הראשי כפי שהוצג קודם, ובו ייצוג גרפי של הפרוייקט שנוצר. אם בחרנו ליצור אפליקציה, למשל, החלון יכיל מסגרת ראשית ותפריט הכולל פקודות "קובץ" שונות (פתיחה, יציאה וכו'), פקודות עזרה וכו'. בנוסף נוצר חלון מסוג "תיבת דו שיח" המיועד ל"אודות", וחלון המיועד לאישור סגירת האפליקציה. הקלקה כפולה עם העכבר על החלון תפתח חלון נוסף ובו קוד המקור, אשר נוצר אוטומטית.
לשם הוספת רכיבים גרפיים יש לבחור את הרכיב הרצוי מהפאנל העליון, ולהוסיף אותו במקום הרצוי. לשם שינוי תכונות הרכיבים הגרפיים, נסמן רכיב גרפי כלשהו (ע"י לחיצה אחת עליו) ופרטיו יופיעו בחלון הימני. שם נעבור שורה שורה ונשנה את אשר ברצוננו (צבע, גודל, צורת הסמן וכיו"ב).
אם נרצה להוסיף "מאזין" לאירוע מסויים נלחץ על הכפתור המתאים בפאנל העליון ונקשר בין שני רכיבים. מהות ההאזנה תיקבע ע"י אשף שיפתח מייד.
בגירסאות מתקדמות יותר של התוכנה התווספה תמיכה בחבילת swing ובהשלמה אוטומטית של קוד. כעת ניתן להשלים שמות מחלקות/מתודות באמצעות לחיצה על מקש ה Ctrl ומקש הרווח בו זמנית.

דוגמה

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

קימפול והרצה עם Visual Café
לאחר שסיימנו לכתוב את הקוד נלחץ על כפתור ה"play" שבפאנל העליון. מייד יתחיל תהליך קימפול והרצה. אם תתגלנה שגיאות בקוד יוצג חלון שגיאות עם הסבר על השגיאה, כאשר לחיצה כפולה על שורת השגיאה תקפיץ אותנו למקום המתאים בקוד.

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

הוספת נקודת עצירה

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



למעלה