בעיית הגדרות ב-JCreator

Johnny the Doe

New member
בעיית הגדרות ב-JCreator

שלום לכולם, אני סטודנט להנדסת אלק' ובמסגרת התואר אני עושה פרוייקט גמר ברובוטיקה, בו אני מתכנת בשפת התכנות leJOS, שהיא למעשה ג'אווה ל-LEGO Robotics (אותו סינטקס רק עם כמה packages נוספים). הבעיה שלי קשורה להגדרות ה-Path השונות ב-JCreator - יש לי חלונות XP ולפי מה שהבנתי אני אמור להגדיר ב-Environment Variables שבהגדרות המערכת את ה-CLASSPATH וה-PATH בהתאם לספריות הקשורות לתוכנה ול-SDK. להלן ההגדרות שביצעתי, אנא תקנו אותי אם אני טועה: 1. בהגדרת ה-PATH הוספתי את ספריית ה-BIN של ה-SDK, ואת ספריית c:\lejos ו-c:\lejos\bin - שם נמצא הקובץ lejosc.exe שמשתמש ב-javac.exe כדי לקמפל את הקוד. 2. בהגדרת ה-CLASSPATH הכנסתי את הספריות הבאות: א. C:\lejos\lib\classes.jar; C:\lejos\lib\pcrcxcomm.jar; - כאן נמצאים כל ה-classes של ה-lejos ונאמר לי להכניס את הספריות הללו ב-tutorial שנמצא ב-lejos.sourcefoge.net (אני לא חושב שזה קשור לקומפילציה). ב. c:\compass; - הספרייה בה נמצא הקוד שלי. בנוסף לכך הגדרתי ב-Project Properties, בכרטיסיית ה-Required Libraries, את הספריות הבאות: c:\lejos\classes c:\lejos\bin c:\jdk1.3.1_12\bin c:\lejos\examples c:\compass לאחר שהרצתי קומפילציה קיבלתי את הפלט הבא: Unable to execute javac. Return status of exec is -1. Make sure javac is in the PATH, or define JAVAC. האם אתם יודעים מה הייתי צריך לשנות או להוסיף? בתודה מראש, Johnny the Doe
 

Johnny the Doe

New member
עוד משהו

כדי לקמפל הגדרתי TOOL באופן הבא: Commands: C:\lejos\bin\lejosc.exe Arguments: $[FileName] Initial Directory: "$[FileDir]" כפי שאמרתי קודם, הקובץ lejosc.exe הוא קובץ הקומפילציה של LEJOS שמשתמש בקובץ javac.exe של ה-SDK. לפי הפלט שקיבלתי הבעיה היא במציאת ה-javac ולא קשורה ב-lejosc עצמו.
 

voguemaster

New member
אתה עובד עם סביבת פיתוח כלשהי ?

או שאתה עובד עם command line ? תנסה מה-command line להריץ javac כדי לראות שאין לך בעיית PATH. אח"כ תנסה לגלות למה lejosc הזו לא מצליחה למצוא את javac. אם ה-PATH שלך בסדר לא צריכה להיות לך בעיה
 

Johnny the Doe

New member
זהו, הבעיה היא בדיוק ב-PATH

כשהרצתי ב-Command line את הפקודה javac.exe נעניתי שהפקודה לא מוכרת, וכנראה זו בדיוק הבעיה. וזאת למרות שכשהרצתי את הפקודה path ספריית ה-BIN של ה-SDK הייתה כלולה ברשימה. ולגבי סביבת הפיתוח - אני מניח שאתה מתכוון אם אני מריץ את הקומפילציה ישירות מה-command line או דרך ה-jcreator. הגדרתי כפתורי tools ב-jcreator שביניהם גם כפתור הקומפילציה שמשתמש ב-lejosc ובארגומנטים שלו, כאשר lejosc משתמש בקובץ javac.
 

Johnny the Doe

New member
עדכון + שאלה נוספת

קודם כל, הצלחתי להגדיר את הספריות של ה-SDK וה-LEJOS ב-PATH וב-COMMAND LINE אני מצליח להפעיל את הקבצים JAVAC, LEJOSC ו-LEJOS. עכשיו יש לי שתי שאלות: 1. האם כשאני עושה קומפילציה לקוד ב-COMMAND LINE והקוד תקין אני לא אמור לקבל שום הערה? כשהרצתי את הקומפילציה פשוט הופיעה שורת פקודה נוספת אחרי זמן מסויים. 2. כשהרצתי את פקודת ה-LEJOS (שהיא למעשה שליחת הקוד לבקר של הרובוט דרך חיבור ה-IR) קיבלתי את ההודעה הבאה: Warning: Can't open zip/jar file: C:\lejos\lib\pcrcxcomm.jar זהו למעשה הקובץ אשר מיישם את שליחת קוד הג'אווה לבקר ולכן השליחה נכשלה. האם יש למישהו מושג כיצד ניתן לאפשר את פתיחת סוג הקובץ הזה?
 

justme5

New member
תשובות

1 - תקין. השארת את הקומפיילר ללא מילים
2 - נסה לפתוח עם הקובץ בעזרת winrar (או כל תוכנה אחרת שמאפשרת לקרוא את התכולה של ה jar). אם לא הצלחת, כנראה שהקובץ פגום. אם הצלחת, נסה לשפוך את התכולה לספרייה זמנית. אם לא הצלחת, כנראה שהקובץ פגום. אם הצלחת, נחשוב על משהו אחר.
 

Johnny the Doe

New member
ממצאים ושאלות נוספות

הצלחתי לפתוח את הקבצים עם WINRAR ולהוציא אותם לספרייה זמנית כך שהם לא פגומים, אבל שמתי לב למשהו: הספריות שנמצאות בקבצי ה-JAR האלה זהות לספריות שנמצאות בספריית ה-lejos\classes, לכן נראה לי שמקורן בקבצי ה-JAR. זה מעלה לי את השאלה הבאה: האם בהגדרת PATH לספרייה מסויימת ההגדרה כוללת גם תת-ספריות? ועוד שאלה - איך בדיוק אני מוסיף ספרייה ל-PATH בנוסף על הספריות שמוגדרות שם מלפני כן?
 
למעלה