كيف يمكنك إصلاح classnotfoundException بعد أن قمت بتغيير اسم الفصل أثناء بنائه

StackOverflow https://stackoverflow.com/questions/4220814

سؤال

لقد غيرت اسم أحد فصول Java الخاصة بي والآن أحصل على classnotfoundException بعد التنظيف وإعادة البناء في Eclipse. أعتقد أن هذا تافهة وأنني نسيت الحل المعروف مرة واحدة! أيه أفكار؟

تحرير: انتهى بي الأمر إلى القيام بأبطأ الحل ، فقط إنشاء مشروع جديد ووضع كل التعليمات البرمجية فيه ...

هل كانت مفيدة؟

المحلول

هل استخدمت إعادة إنشاء Eclipse؟ أو هل تحتاج إلى تنظيم واردات بعض الملفات لا تزال؟

تحرير بناءً على ردود الفعل:

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

في المستقبل ، لتجنب هذه المشكلة تمامًا ، تأكد من استخدام الأداة المساعدة Refactor دائمًا في Eclipse. إن إعادة النية سهلة مثل تحديد ملف أو فئة أو طريقة أو اسم متغير والضغط على ALT+Shift+R وملء الاسم الجديد المطلوب. تتمثل الميزة في إعادة إنشاء أنها ستطارد تلقائيًا جميع مراجع التعليمات البرمجية (التي لديها إمكانية الوصول إليها) للمطور.

نصائح أخرى

استخدم Refactor في المرة القادمة. الآن ، حاول إزالة الفصول التي تم بناؤها بالفعل والتجميع مرة أخرى.

في حال كان لدى شخص ما خطأ مماثل معي وليس له حظ بعد مشروع Clean ، فإنه يحتوي على فول القديم المعاد تسميته في ملف XML محدد (مثل WebApp/Web-Inf/Spring/Grape-Servelet.xml في حالتي) ، يجب عليك قم بتغييره يدويًا إلى اسم الفصل الجديد وبعد ذلك سيحل المشكلة.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top