נפוץ מאוד להתמודד עם שגיאות וחריגים בשפת התכנות Java. אבל חלק מהשגיאות הפופולריות והנפוצות ביותר נתקלות לעתים קרובות על ידי מתכנתים שהם חדשים בתכנות. בין השגיאות הללו, לא הצליח למצוא או לטעון את המחלקה הראשית ב-Java, הוא אחד מהם שמתרחש בדרך כלל. השגיאה מצביעה על כך שה פקודת java נִכשָׁל כדי למצוא או לטעון את המחלקה הראשית . זה מתרחש כאשר אנו מנסים להפעיל תוכנית. כאשר השגיאה מתרחשת, ה-JVM מציג את הודעת השגיאה הבאה במסוף:
Error: Could not find or load main class ClassName
השגיאה נוצרת בעיקר כאשר אנו מציינים באופן שגוי את שם המחלקה בזמן הריצה של התוכנית.
סיבות להתרחש שגיאה
השגיאה נוצרת בגלל ה JVM נכשל בטעינת המחלקה הראשית או שם החבילה. ישנן כמה סיבות נוספות שיוצרות את אותה שגיאה, כדלקמן:
- המחלקה הוכרזה בחבילה הלא נכונה.
- חסרות תלות ב-CLASSPATH.
- נתיב ספריית המשנה אינו תואם לשם המלא.
- הספרייה השגויה נמצאת ב-CLASSPATH.
- ה-CLASSPATH של האפליקציה צוין באופן שגוי.
- מתרחש גם, כאשר עשינו טעות עם הארגומנט שם המחלקה.
פתרון לשגיאה
כדי למנוע או לפתור את השגיאה, עלינו לציין את שם החבילה המוחלט או שם המחלקה.
ללא חבילה
המחלקה הראשית היא מחלקה שבה מוגדרת המתודה main(). בואו ניצור תוכנית שיוצרת ומציגה שגיאה בקונסולה.
DemoClass.java
ניתוח מחרוזת ל-int
public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //using console to input data from user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
תְפוּקָה:
אנו רואים שהתוכנית שלעיל מתארגנת ופועלת בהצלחה. בוא ניצור את השגיאה ש לא הצליח למצוא או לטעון את המחלקה הראשית בתוכנית לעיל. כדי ליצור ולהציג את השגיאה, יש לנו כתיב שגוי שם הכיתה בזמן הקלדת ה- java פקודה Java DemoClas .
זה קורה גם כאשר אנו מציינים את .מעמד הרחבה בסוף שם הכיתה.
java DemoClass.class
כדי למנוע את השגיאה, אל תכתוב .מעמד סיומת בסוף שם הכיתה בזמן השימוש ב- java פקודה.
java DemoClass
השגיאה מתרחשת גם כאשר אנו לא ממקמים את המחלקה בתיקייה הנכונה. בתמונה הבאה, אנחנו לא בתוך הַדגָמָה התיקייה שבה ממוקמת הכיתה. זה אומר את DemoClass.class הקובץ חייב להיות בתוך הספרייה C:demo .
עם חבילה
בתוכנית לעיל, בואו ניצור חבילה בשם com.javatpoint . זה אומר שבקומפילציה של תוכנית Java הבאה קובץ ה-.class ייווצר בתוך ה- C:democomjavatpointDemoClass.class .
DemoClass.java
package com.javatpoint; public class DemoClass { public static void main(String[] args) { System.out.print('Enter a string: '); //reading a string from the user String name = System.console().readLine(); System.out.println('You have entered: '+name); } }
תְפוּקָה:
זכור שאם המחלקה נמצאת בתוך חבילה, עלינו להשתמש בשם המחלקה המלא, כולל שם החבילה, בפקודה java.