تم: تعذر العثور على الفصل الرئيسي أو تحميله

يحدث الخطأ " تعذر العثور على الفئة الرئيسية أو تحميلها " عند استخدام أمر java في موجه الأوامر لتشغيل برنامج Java عن طريق تحديد اسم الفئة في الجهاز. يرجع سبب حدوث ذلك في الغالب إلى خطأ برمجة المستخدم أثناء الإعلان عن الفئة.

تعذر العثور على الفئة الرئيسية أو تحميلها في سطر أوامر Java

كما ذكرنا سابقًا ، لا يتعلق هذا الخطأ في الغالب بالنظام ويرتكب المستخدم خطأ في عدة سيناريوهات كما هو موضح أدناه. قبل المضي قدمًا ، نفترض أن لديك معرفة أساسية بلغة برمجة Java وكيفية عملها.

ما الذي يسبب الخطأ "تعذر العثور على الفئة الرئيسية أو تحميلها" في Java؟

تعني الرسالة "تعذر العثور على الفئة الرئيسية أو تحميلها" أن الخطوة الأولى لمحرك Java الذي يقوم بجلب الفئة للتنفيذ قد فشلت. و القيادة جافا لم يكن قادرا على تحديد الطبقة على الدليل الصحيح.

في بعض الحالات ، يجب عليك إضافة مسار الملف الصحيح وتوجيه محطة Java إلى الموقع الصحيح. نظرًا لأنك تقوم بتنفيذ الأمر من سطر الأوامر الطرفية ، فإن الكمبيوتر لا يعرف مكان وجود الفئة أو مكانها. في IDE's المستهدفة ، ليست هذه هي المشكلة حيث يحتفظ IDE بمؤشر يشير إلى دليل العمل الحالي.

ما هي صيغة جافا؟

قبل أن نبدأ في استكشاف أسباب قيام المحطة بإرجاع خطأ إلينا عند محاولة التنفيذ ، نحتاج أولاً إلى النظر في بناء جملة الأمر. إذا كنت لا تستخدم الصيغة الصحيحة ، فسوف تواجه هذا الخطأ حتما.

الصيغة العادية للأمر هي شيء من هذا القبيل:

 جافا [...] [...]

فيما يلي خيار سطر أوامر ، وهو اسم فئة Java مؤهل بالكامل ، وهو عبارة عن وسيطة سطر أوامر يتم تمريرها إلى تطبيقك عند تجميع الحزمة بأكملها.

مثال على أمر صالح هو:

جافا -Xmx100m com.acme.example.ListAppuals كيفن سهام بارت

سيجعل الأمر أعلاه أمر java ينفذ العمليات التالية:

  • سيبحث عن نسخة مترجمة من الفئة " com.acme.example.ListAppuals ".
  • بعد البحث ، سيتم تحميل الفصل.
  • بعد ذلك ، عندما يتم تحميل الفئة ، سيتم البحث في الفصل عن طريقة 'main' بتوقيع صالح ومعدلات ونوع إرجاع. قد تكون عينة الفصل الرئيسي شيئًا مثل:
فراغ رئيسي ثابت عام (سلسلة [])
  • سيتم استدعاء العملية باستخدام الوسيطات "kevin" و "arrows" و "bart" كسلسلة [].

كيفية إصلاح "تعذر العثور على الفصل الرئيسي أو تحميله"

الحل 1: التحقق من وسيطة اسم الفئة

الخطأ الأكثر شيوعًا الذي يرتكبه المستخدمون هو أنهم يقدمون اسم فئة خاطئ كوسيطة (أو أن اسم الفئة الصحيح هو نموذج خاطئ). نظرًا لأننا نعلن عن المعلمات في سطر الأوامر ، فمن المحتمل جدًا أن تمرر وسيطة اسم الفئة في شكل خاطئ. سنقوم هنا بإدراج جميع السيناريوهات المحتملة حيث يمكنك ارتكاب خطأ.

  • كتابة اسم فئة بسيط . إذا قمت بتعريف الفئة في حزمة مثل 'com.acme.example' ، فيجب عليك استخدام اسم الفئة الكامل بما في ذلك الحزمة في أمر Java.
جافا com.acme.example.ListAppuals

بدلا من

قائمة جافا
  • يجب أن تعلن عن اسم فئة بدلاً من التصريح عن اسم ملف أو اسم مسار. لا تقوم Java بجلب الفئة إذا قمت بتعريف اسم مسار / اسم ملف لها. تشمل الإدخالات غير الصحيحة ما يلي:
java ListAppuals.class java com / acme / example / ListAppuals.class
  • يجب أن يؤخذ الغلاف في الاعتبار. أوامر Java حساسة لحالة الأحرف وإذا ارتكبت خطأً حتى في حرف واحد ، فلن تتمكن من تحميل الفئة الرئيسية. مثال على الأخطاء غير الصحيحة هي:
جافا com.acme.example.listappuals
  • أنت لا ينبغي أن يعلن اسم الملف المصدر . كما ذكرنا سابقًا ، ما عليك سوى إعلان الفصل بالتنسيق الصحيح الكامل لاسم الفئة. مثال على الخطأ هو:
java ListAppuals.java
  • سيحدث هذا الخطأ أيضًا إذا ارتكبت خطأ كتابيًا أو نسيت كتابة اسم الفصل بالكامل .

إذا كنت قد ارتكبت أي أخطاء قذرة في الإعلان عن اسم الفئة ، فتأكد من إصلاحه ثم حاول تشغيل البرنامج.

الحل 2: فحص مسار الفصل

إذا كنت قد أعلنت عن اسم الفئة بشكل صحيح ولكنك لا تزال تظهر الخطأ ، فمن المحتمل أن الأمر java لم يتمكن من العثور على اسم الفئة المحدد في المسار. classpath هو مسار يبحث فيه Java runtime عن ملفات الموارد والفئات. يمكنك بسهولة ضبط classpath باستخدام أمرين مختلفين كما هو موضح أدناه:

C:> sdkTool -classpath classpath1 ؛ classpath2 ... C:> set CLASSPATH = classpath1 ؛ classpath2 ...

للحصول على مزيد من المعلومات حول مسار الفصل الدراسي ، يجب عليك مراجعة المستندات التالية.

وثائق أوامر جافا

إعداد مسار الفصل

الحل 3: فحص الدليل

عندما تعلن عن دليل على أنه مسار فئة ، فإنه سيتوافق دائمًا مع جذر مساحة الاسم. على سبيل المثال ، إذا كان “/ usr / local / acme / class” موجودًا في مسار الفصل ، فستبحث Java عن فئة “com.acme.example.Appuals”. سيبحث عن فئة مع اسم المسار التالي:

/usr/local/acme/classes/com/acme/example/Appuals.class

لذا ، إذا وضعت العنوان التالي في مسار الفصل الدراسي ، فلن تتمكن Java من العثور على الفصل:

/ usr / local / acme / class / com / acme / example

يجب عليك أيضًا التحقق من الدليل الفرعي الخاص بك ومعرفة ما إذا كان يطابق FQN. إذا كانت فئاتك FQN هي "com.acme.example.Appuals" ، فستبحث Java عن "Appuals.class" في الدليل "com / acme / example".

لإعطائك مثالاً ، دعنا نفترض السيناريو التالي:

  • الفئة التي تريد تشغيلها هي: com.acme.example.Appuals
  • و مسار الملف الكامل هو: /usr/local/acme/classes/com/acme/example/Appuals.class
  • في دليل العمل الحالي هو: / البيرة / المحلية / قمة / فئات / كوم / قمة / المثال /

ثم تصمد السيناريوهات التالية:

# خطأ ، FQN مطلوب java Appuals # خطأ ، لا يوجد مجلد "com / acme / example" في دليل العمل الحالي java com.acme.example.Appuals # غير صحيح ، على غرار السيناريو أعلاه java -classpath. com.acme.example.Appuals # موافق ؛ تم تعيين مسار فئة نسبي java -classpath ../../ .. com.acme.example.Appuals # OK؛ تم تعيين مسار فئة مطلق java -classpath / usr / local / acme / classes com.acme.example.Appuals

ملاحظة: يحتاج classpath إلى تضمين جميع الفئات الأخرى (غير النظامية) التي تحتاجها تطبيقاتك.

الحل 4: فحص حزمة الفصل

إذا كانت جميع الحلول المذكورة أعلاه صحيحة في حالتك ، فأنت بحاجة إلى التأكد من وضع كود المصدر في المجلد الصحيح. أيضًا ، لقد أعلنت الحزمة بشكل صحيح . إذا قمت بتشغيل الكود الخاص بك باستخدام IDE ، فمن المحتمل أن يخبرك بشأن المشكلة. ومع ذلك ، في حالتنا ، نظرًا لأننا نقوم بتشغيله في موجه الأوامر ، فإن الخطأ لن يتم ملاحظته وسوف تحصل على خطأ الفصل الدراسي قيد المناقشة.