Java/עבודה משורת הפקודות



התקנת ג'אווה על המחשב שלך Java
עבודה משורת הפקודות
התקנת סביבת פיתוח
ניווט בנושא הכנה


כדאי לדעת:

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

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

דוגמאות לעורכים מתאימים

עריכה

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

לינוקס

עריכה
  • Vim - משוכלל וניתן להרחבה, מתחרה וותיק של emacs. מתאפיין גם כן בממשק רב אפשרויות הדורש לימוד.
  • nano - עורך זעיר בעל מימשק טקסטואלי לחלוטין.
  • Gedit - עורך טקסטים המותקן עם GNOME. ניתן להתאמה בעזרת מערכת גמישה של רכיבי תוספים. מדריך מפורט יותר המסביר כיצד להתאים את Gedit לפיתוח אפשר למצוא כאן.

ניתן להתקין את כל העורכים הנ"ל בעזרת מנהלי החבילות המתאימים.

חלונות (windows)

עריכה
  • Notepad (פנקס רשימות) - בא מותקן מראש עם כל גרסת ווינדוס.
  • Notepad++ - עורך טקסט חינמי חופשי המותאם לפיתוח, בעל הרבה תכונות שימושיות.
  • E Text Editor - התכונות הבולטות שלו כוללות מערכת בקרת גרסאות אישית; ביטול גראפי מקונן ומרובה רמות; אפשרויות להפעיל חבילות Textmate באמצעות Cygwin.

מקינטוש

עריכה
  • TextMate - משתלב בחוויית משתמש X OS היטב, והוא עורך מוערך מאוד. מכיל אפשרויות טובות לניהול פרויקטים, היסטוריה לוח, זיווג סוגריים אוטומטי, וניתן להרחיב עם תוספים.
  • TextWrangler - גרסה חינמית של BBEdit. מציע מגוון רחב של תמיכה בשפות תכנות שונות, ופנטסטי למצוא ולהחליף. כלי אמין ורב עוצמה, במיוחד בהתחשב שאינו עולה כסף.
  • BBEdit - מעורכי הטקסט המובילים למקינטוש, והמחיר משקף את זה. זה מעבר להישג ידו של משתמש פשוט, אבל מציע מגוון רחב של פונקציונליות מתקדמת. מצוין לחיפוש והחלפה, ארגון פרויקטים, עבודה עם שרתים מרוחקים, אימות קוד מובנה / תקני בדיקה, והדגשה של כל קוד שתזרוק אליו.

שורת הפקודות

עריכה

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

אם הינך עובד עם ווינדוס, על מנת לקמפל קבצים דרך MS-DOS, וודא כי הגדרת את ג'אווה כמו שצריך כפי שמתואר בפרק הקודם, על מנת שתוכל להשתמש בפקודות כמו javac, java ו- jar.
בשביל לפתוח את שורת הפקודה (Command Prompt) או cmd בקיצור, יש ללחוץ על [⊞ Win]+[R] בשביל לפתוח את חלון הפעלה, בחלון ההפעלה שנפתח יש להקליד <code">cmd ולאחר מכן להקיש [enter]

במקינטוש, תצטרך להשתמש בטרמינל (Terminal) שנמצא בתיקייה: יישומים › כלי עזר.

יצירת קובץ להידור

עריכה

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

  1. על שולחן העבודה צור תיקייה חדשה בשם "workspace" (ניתן לקרוא לתיקייה באיזה שם שתרצה)
  2. נווט אל תוך התיקייה החדשה שיצרת, וצור בתוך שני תיקיות נוספות, קרא להם "bin" ו- "src".
  3. כעת נווט אל תוך התיקייה שנקראת src, וצור קובץ טקסט חדש.
  4. שנה את שמו של הקובץ כולל סיומו ל- "HelloWorld.java". את קבצי קוד המקור אנו כותבים בקבצים שהסיומת שלהם היא .java
    • אם אינך רואה את הסיומת של הקובץ (filename.txt), עליך להפעיל אפשרות זו באפשרויות תיקיה.
      לך להפעלהמראה והתאמה אישיתאפשרויות תיקיה (או הפעלה › אפשרויות תיקיה בווינדוס XP)
      בחלון שנפתח לך ללשונית תצוגה, ומתחת להגדרות מתקדמות, חפש את האפשרות "הסתר סיומות עבוד סוגי קבצים מוכרים" ובטל את הסימון שלה. לאחר מכן לחץ אישור.
  5. אם מופיע אזהרה בעת שינוי סיומת הקובץ, התעלם ולחץ אישור לשינוי שם הקובץ.
  6. בשביל לערוך את התוכן של הקובץ, פתח את הקובץ בעורך הטקסט לבחירתך. במדריך זה ניקח את notepad כדוגמא.
  7. לחץ עכבר ימני על הקובץ › פתח באמצעות › בחירת תוכנית ברירת מחדל. בחר בחפש באצעות ווינדוס ולחץ אישור. בחלון שנפתח תוכל לבחור בתוכנה שתפתח קבצים עם סיומת java. אם אינך רואה את העורך שאתה רוצה, אתה יכול ללחוץ על עיון... ולבחור בקובץ הפעלה (executable file) של אותו עורך.
  8. העתק את השורות הבאות אל תוך תוכן הקובץ ושמור אותו
 
class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello World!");
	}
}


הידור קוד

עריכה

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

 
C:\Users\username>

נווט לשולחן העבודה על ידי שימוש בפקודה cd

 
C:\Users\username>cd Desktop

כעת תמצא בשולחן העבודה ושורת הפקודות תראה את השורה הבאה

 
C:\Users\username\Desktop>

המשך לנווט באופן הבא לתיקייה workspace › src (אם בחרת שמות אחרים לתיקיות ודא שהינך משתמש בשמות שבחרת).

 
C:\Users\username\Desktop>cd workspace\src

ניתן לבצע את הפקודה dir על מנת לראות את התוכן של התיקיה הנוכחית בה אתה נמצא

 
C:\Users\username\Desktop\workspace\src>dir

ידפיס:

 
 Directory of C:\Users\username\Desktop\workspace\src

08/24/2013  10:29 AM    <DIR>          .
08/24/2013  10:29 AM    <DIR>          ..
08/24/2013  10:28 AM               107 HelloWorld.java
               1 File(s)            107 bytes
               2 Dir(s)   5,031,735,296 bytes free


 

כדאי לדעת:

ניתן לנקות את שורת הפקודות
על ידי שימוש בפקודה cls

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

 
C:\Users\username\Desktop\workspace\src>javac HelloWorld.java

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

 
 Directory of C:\Users\username\Desktop\workspace\src

08/24/2013  10:52 AM    <DIR>          .
08/24/2013  10:52 AM    <DIR>          ..
08/24/2013  10:52 AM               426 HelloWorld.class
08/24/2013  10:28 AM               107 HelloWorld.java
               2 File(s)            533 bytes
               2 Dir(s)   5,036,130,304 bytes free

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

 
C:\Users\username\Desktop\workspace\src>java HelloWorld

הפקודה הנ"ל תגרום לשורת הפקודות להציג חזרה את הפלט הבא

 
Hello World!

בקש עזרה אם התכנית לא בצעה כראוי בדף שיחה של פרק זה.

כאשר משתמשים בפקודות כמו java ו- javac יש להקפיד על אותיות גדולות וקטנות.
שים לב שבזמן שהשתמשנו בפקודה javac, כתבנו את שמו של הקובץ כולל הסיומת .java, לעומת זאת במקרה של הפקודה java, כתבנו רק HelloWorld ללא .class.
כאשר אנו מבצעים קומפילציה אנחנו מתמודדים עם הקובץ, לכן יש להוסיף את הסיומת .java
אבל שאנחנו מריצים את התוכנית אנחנו מתמודדית עם המחלקה (class), לכן אין צורך בסיומת

הידור למיקום נפרד

עריכה

כאשר השתמשנו בפקודה javac, הקובץ בייטקוד נוצר באותו תיקייה,
מטרתנו להיות מאורגנים ולשמור את קוד המקור במקום נפרד מהקוד שעבר קומפילציה, לשם כך יצרנו שני תיקיות

  • src - תיקייה שתכיל את קוד המקור
  • bin - תיקייה שתכיל את הקוד שעבר קומפילציה

ברור שאפשר להעביר את הקבצים לאחר מכן, אבל מה נעשה במקרה של פרוייקט גדול שקוד המקור מורכב ממספר רב של קבצים שנמצאים בתוך תיקיות שבתוך תיקיות...
למזלנו יש אפשרות לתת לפקודה javac, חוץ מאת שם הקובץ אותו אנחנו רוצים לקמפל, תקיית יעד לקובץ/י הבייטקוד שיווצר/ו.
נוסיף לפקודה -d (קיצור של directory) ואז את תיקיית היעד:

 
C:\Users\username\Desktop\workspace\src>javac -d ..\bin HelloWorld.java

כאשר אנחנו כותבים ".." הכוונה היא לחזור אחורה תיקיה אחת, אז מכאן תיקיית היעד תהיה C:\Users\username\Desktop\workspace\bin
ואכן, לאחר פקודה זו, תוכלו לראות עכשיו בתיקיית ה-bin את הקובץ אחרי קומפילציה.

 
C:\Users\username\Desktop\workspace\src>dir ..\bin

ידפיס:

 
 Directory of C:\Users\username\Desktop\workspace\bin

08/24/2013  11:12 AM    <DIR>          .
08/24/2013  11:12 AM    <DIR>          ..
08/24/2013  11:12 AM               426 HelloWorld.class
               1 File(s)            426 bytes
               2 Dir(s)   5,033,070,592 bytes free

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

הרצה עם פרמטרים

עריכה

כאשר יוצרים מחלקה ראשית, זאת המחלקה שאתם רוצים שתרוץ ראשונה בעת הפעלת התכנית, תמיד תהיה לה שיטה ראשית
התחביר (syntax) של השיטה הראשית נראה כך:

 
public static void main(String[] args) {
	Code Goes Here
}

public - אומר שהשיטה ציבורית, וניתן לקרוא לה מכל מקום.
static - מציין שלא צריכים לצור מופע (instances) של המחלקה.
void - קובע ששיטה זו אינה מחזירה שום דבר.
נדבר על מילות מפתח אלו יותר לעומק בפרקים בהמשך, אבל כרגע כל מה שעליך לדעת הוא ששלושת מילות המפתח האלו נדרשות להיות חלק מהכרזת השיטה הראשית.

הדבר השני שהשיטה הראשית זקוקה לו הוא התחביר הבא

 
(String[] args)

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

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

 
C:\Users\username\Desktop\workspace\bin>java HelloWorld arg1 arg2

שמות הפרמטרים הינם arg1 ו- arg2, ותוכן המערך args יכיל ערכים אילו בתחילת התוכנית.

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

 
public class HelloWorld {
	public static void main(String[] args) {
		System.out.println("Hello World!");
		
		System.out.println("Number of args: " + args.length);
		for (int i = 0; i < args.length; i++) {	
			System.out.println( args[i] );
		}
	}
}

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

 
C:\Users\username\Desktop\workspace\src>javac -d ..\bin HelloWorld.java

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

 
C:\Users\username\Desktop\workspace\bin>java HelloWorld arg1 arg2 arg3

נקבל חזרה את הפלט הבא

 
Hello World!
Number of args: 3
arg1
arg2
arg3


  התקנת ג'אווה על המחשב שלך Java
עבודה משורת הפקודות
התקנת סביבת פיתוח