למה?!?! JAVA

omernaor

New member
למה?!?! JAVA

אני מריץ את הקבצים פעם ראשונה ביוניקס והכל סבבה. פעם שנייה שאני מנסה להריץ אני מקבל: java.lang.NoClassDefFoundError למה?!
 

Metheny

Member
יכול להיות אולי...

או שקראת ל-class באותו שם כמו לקובץ שהוא נמצא בו, אבל הם לא שווים מבחינת case sensitive... או שיכול להיות שבשורת ההפעלה לא הקפדת על case sensitive ?
 

neko

New member
יכול להיות שהספריה . לא נמצאת

בCLASSPATH. בחלון הדוס תכתוב "SET CLASSPATH" ותראה מה יוצא. אם אין שם ., תוסיף ע"י כפתור ימני על MY COMPUTER -> ADVANCED -> ENVIONMENT (אם אני זוכר נכון).
 

melatonin

New member
דוס? מה קרה לכם?

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

omernaor

New member
הפקודות הרגילות

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

justme5

New member
בוא נעשה ניסוי קטן

בטרמינל, כנס לספרייה שבה נמצאים הקבצים, הרץ את הפקודות הבאות וספר לנו מה הפלט:
\rm -rf *.class javac *.java ls -l java -v <the class which contains the main method>​
 

omernaor

New member
אני אפרט יותר

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

justme5

New member
טעות שלי

התכוונתי ל verbose-. זה גורם ל JVM להראות כל class שהוא טוען. מעניין לראות איפה הוא נכשל.
 

justme5

New member
אתה מריץ רק קובץ אחד, לא?

הקובץ שבו נמצאת ה main. שאר הקבצים נקראים ממנו...
 

omernaor

New member
שני קבצים

אחד CLIENT אחד SERVER. והקימפול שלהם נעשה עם MAKEFILE
 

omernaor

New member
אני מקבל שם

המון מלל לא מובן וחלק גם נעלם מרוב שהיה הרבה (אי אפשר לעלות למעלה עם החץ עד הסוף). כדי להבהיר אחרי JAVA -VERBOSE עשיתי הרצה רגילה של הקבצים שלי - JAVA UDPS.............וכולי
 
למעלה