לא הצלחתי למצוא או לטעון Java ברמה הראשית? הנה איך לתקן את זה!

לא הצלחתי למצוא או לטעון Java ברמה הראשית? הנה איך לתקן את זה!

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





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





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





מדוע המחלקה הראשית לא נמצאה?

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

מהו Classpath?

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



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

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





בשלב זה, אם ברצונך לרענן את זיכרון שיעורי הג'אווה, עיין במדריך שלנו בנושא יצירת שיעורים ב- Java .

האם תוכל להסיר הצעה ב- ebay

שימוש בחבילות

בואו ניצור כיתה בשם מִבְחָן . מניחים אותו באריזה בשם testPackage . חבילות משמשות ב- Java על מנת לקבץ מחלקות דומות יחד או לספק מרחב שמות ייחודי לשיעורים.





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

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

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

לְלַקֵט Test.java על ידי הפעלת הפקודה הבאה:

package testPackage;
javac testPackage/Test.java

פעולה זו תשמור את הקובץ הבינארי המורכב (קובץ .class) ב- testPackage.

כדי להפעיל את המחלקה המורכבת, עליך להקליד את שם המחלקה המוסמכת בשורת הפקודה. השם המוסמך של מחלקת Java מתייחס לשמו המוקדם בשם החבילה שלו. במקרה זה, זה אמור להיראות בערך כך:

java testPackage.Test

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

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

ציון ידני של Classpath

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

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

אם נשתמש בשיטה זו, כך ייראה מבנה הספרייה לפני הידור:

דיסק פועל ב- 99 windows 10
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

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

כדי לקמפל זאת, ודא שמדריך העבודה שלך הוא myFolder. כעת, הקלד את הפקודה הבאה:

javac -d classes src/testPackage/Test.java

ה .מעמד יש לשמור את ההפעלה ב myFolder/classes/testPackage . בהתאם לכך, מבנה ספריית הקבצים נראה בערך כך: | _+_ |

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

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

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

חשיבות ארגון הקבצים ב- Java

עצם הסיבה מדוע 'לא ניתן למצוא או לטעון את המחלקה הראשית' נזרקת היא מכיוון ש- JVM לא הצליח למצוא היכן שלך .מעמד הקבצים נשמרו.

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

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

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

לַחֲלוֹק לַחֲלוֹק צִיוּץ אימייל 10 הפרויקטים הטובים ביותר למתחילים למתכנתים חדשים

רוצה ללמוד תכנות אבל לא יודע מאיפה להתחיל? פרויקטי התכנות והדרכות מתחילים אלה יתחילו אותך.

אני לא זוכר את הסיסמה שלי ל- icloud
קרא הבא נושאים קשורים
  • תִכנוּת
  • ג'אווה
על הסופר יאש צ'לאני(פורסמו 10 מאמרים)

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

עוד מאת יאש צ'לאני

הירשם לניוזלטר שלנו

הצטרף לניוזלטר שלנו לקבלת טיפים, סקירות, ספרים אלקטרוניים בחינם ומבצעים בלעדיים!

לחצו כאן להרשמה