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



جرب أداة القضاء على المشاكل

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



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

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



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



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

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

في بعض الحالات ، يجب عليك إضافة الامتداد مسار الملف الصحيح وقم بتوجيه محطة Java إلى الموقع الصحيح. نظرًا لأنك تقوم بتنفيذ الأمر من سطر الأوامر الطرفية ، فإن الكمبيوتر لا يعرف مكان وجود الفئة أو مكانها. في IDE المستهدف ، ليست هذه هي المشكلة حيث يحتفظ 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” موجودًا في classpath ، فإن 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
  • ال دليل العمل الحالي هو: / usr / local / acme / class / com / acme / example /

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

# خطأ ، 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

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

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

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

4 دقائق للقراءة