من الشائع جدًا مواجهة الأخطاء والاستثناءات في لغة برمجة Java. لكن بعض الأخطاء الأكثر شيوعًا والأكثر شيوعًا غالبًا ما يواجهها المبرمجون الجدد في مجال البرمجة. ومن بين هذه الأخطاء تعذر العثور على الفئة الرئيسية أو تحميلها في Java، هو واحد منهم الذي يحدث عادة. يشير الخطأ إلى أن أمر جافا فشل للعثور على الفئة الرئيسية أو تحميلها . يحدث ذلك عندما نحاول تشغيل برنامج ما. عند حدوث الخطأ، يعرض JVM رسالة الخطأ التالية على وحدة التحكم:
Error: Could not find or load main class ClassName
يتم إنشاء الخطأ في الغالب عندما نحدد اسم الفئة بشكل غير صحيح في وقت تشغيل البرنامج.
أسباب حدوث الخطأ
ينشأ الخطأ لأن JVM فشل في تحميل الفئة الرئيسية أو اسم الحزمة. هناك بعض الأسباب الأخرى التي تؤدي إلى حدوث نفس الخطأ، كما يلي:
- لقد تم التصريح عن الفصل في الحزمة الخاطئة.
- التبعيات مفقودة من CLASSPATH.
- لا يتطابق مسار الدليل الفرعي مع الاسم المؤهل بالكامل.
- الدليل الخاطئ موجود على CLASSPATH.
- تم تحديد CLASSPATH للتطبيق بشكل غير صحيح.
- يحدث أيضًا عندما نرتكب خطأً في وسيطة اسم الفئة.
الحل للخطأ
لتجنب الخطأ أو حله، نحتاج إلى تحديد اسم الحزمة المطلق أو اسم الفئة.
بدون حزمة
الفئة الرئيسية هي فئة يتم فيها تعريف الطريقة الرئيسية (). لنقم بإنشاء برنامج يقوم بإنشاء خطأ ويعرضه على وحدة التحكم.
DemoClass.java
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 DemoClass.class
لتجنب الخطأ، لا تكتب .فصل ملحق في نهاية اسم الفئة أثناء استخدام java يأمر.
java DemoClass
يحدث الخطأ أيضًا عندما لا نضع الفصل في المجلد الصحيح. في الصورة التالية نحن لسنا داخل تجريبي المجلد الذي يوجد به الفصل. يعني DemoClass.class يجب أن يكون الملف داخل الدليل ج:التجريب .
مع الحزمة
في البرنامج أعلاه، لنقم بإنشاء حزمة اسمها com.javatpoint . وهذا يعني أنه عند تجميع برنامج Java التالي، سيتم إنشاء ملف .class داخل ملف .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.