يجب أن ينتهي اسم ملف الفئة بـ .class الاستثناء في Java Search

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

  •  08-06-2019
  •  | 
  •  

سؤال

كنت أتمنى أن يساعدني شخص ما في حل المشكلة التي أواجهها عند استخدام وظيفة بحث Java في Eclipse في مشروع معين.

عند استخدام بحث جافا في مشروع معين، أحصل على رسالة خطأ تقول Class file name must end with .class (انظر تتبع المكدس أدناه).لا يبدو أن هذا يحدث في جميع المشاريع، بل في مشروع واحد فقط، لذا ربما يكون هناك شيء يجب أن أحاول إعادة بنائه؟

لقد حاولت بالفعل Project -> Clean...وإغلاق Eclipse وحذف كافة ملفات الفئة المضمنة وإعادة تشغيل Eclipse دون جدوى.

المرجع الوحيد الذي تمكنت من العثور عليه على Google بخصوص المشكلة موجود في http://www.crazysquirrel.com/computing/Java/Eclipse/error-during-Java-search.jspx, لكن للأسف الحل الذي قدمه (الإغلاق، وحذف ملفات الفصل، وإعادة التشغيل) لم ينجح معي.

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

Version: 3.4.0
Build id: I20080617-2000

كما وجدت للتو هذا الموضوع - http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - مما يدل على أن نفس المشكلة قد تحدث عندما يحتوي اسم المشروع على نقطة.لسوء الحظ، ليس هذا هو الحال في الإعداد الخاص بي، لذلك ما زلت عالقًا.

Caused by: java.lang.IllegalArgumentException: Class file name must end with .class
at org.eclipse.jdt.internal.core.PackageFragment.getClassFile(PackageFragment.java:182)
at org.eclipse.jdt.internal.core.util.HandleFactory.createOpenable(HandleFactory.java:109)
at org.eclipse.jdt.internal.core.search.matching.MatchLocator.locateMatches(MatchLocator.java:1177)
at org.eclipse.jdt.internal.core.search.JavaSearchParticipant.locateMatches(JavaSearchParticipant.java:94)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.findMatches(BasicSearchEngine.java:223)
at org.eclipse.jdt.internal.core.search.BasicSearchEngine.search(BasicSearchEngine.java:506)
at org.eclipse.jdt.core.search.SearchEngine.search(SearchEngine.java:551)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.internalSearch(RefactoringSearchEngine.java:142)
at org.eclipse.jdt.internal.corext.refactoring.RefactoringSearchEngine.search(RefactoringSearchEngine.java:129)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.initializeReferences(RenameTypeProcessor.java:594)
at org.eclipse.jdt.internal.corext.refactoring.rename.RenameTypeProcessor.doCheckFinalConditions(RenameTypeProcessor.java:522)
at org.eclipse.jdt.internal.corext.refactoring.rename.JavaRenameProcessor.checkFinalConditions(JavaRenameProcessor.java:45)
at org.eclipse.ltk.core.refactoring.participants.ProcessorBasedRefactoring.checkFinalConditions(ProcessorBasedRefactoring.java:225)
at org.eclipse.ltk.core.refactoring.Refactoring.checkAllConditions(Refactoring.java:160)
at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper$Operation.run(RefactoringExecutionHelper.java:77)
at org.eclipse.jdt.internal.core.BatchOperation.executeOperation(BatchOperation.java:39)
at org.eclipse.jdt.internal.core.JavaModelOperation.run(JavaModelOperation.java:709)
at org.eclipse.core.internal.resources.Workspace.run(Workspace.java:1800)
at org.eclipse.jdt.core.JavaCore.run(JavaCore.java:4650)
at org.eclipse.jdt.internal.ui.actions.WorkbenchRunnableAdapter.run(WorkbenchRunnableAdapter.java:92)
at org.eclipse.jface.operation.ModalContext$ModalContextThread.run(ModalContext.java:121)

شكرًا ماكدويل، يبدو أن إغلاق المشروع وفتحه قد أصلح المشكلة (على الأقل في الوقت الحالي).

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

المحلول

آليتان أخريان للأغراض العامة لإصلاح بعض خصوصيات Eclipse:

  • إغلاق وفتح المشروع
  • احذف المشروع (ولكن ليس من القرص!) وأعد استيراده كمشروع موجود

الإخفاق في ذلك، bugs.Eclipse.org قد توفر الجواب.

إذا كانت مساحة العمل تقوم بتخزين شيء معطل مؤقتًا، فقد تتمكن من حذفه عن طريق البحث فيه مساحة العمل/.metadata/.plugins.معظم هذه الأشياء عابرة إلى حد ما (على الرغم من النسخ الاحتياطي ومراقبة التفضيلات المحذوفة).

نصائح أخرى

تعليق رقم 9 للخطأ 269820 يشرح كيفية حذف فهرس البحث، والذي يبدو أنه الحل لفهرس فاسد أعراضه مخيفة

حدث خطأ داخلي أثناء:"تصفية العناصر".
يجب أن ينتهي اسم ملف الفئة بـ .class

صندوق الرسائل.

كيفية حذف فهرس البحث:

  1. إغلاق الكسوف
  2. حذف <workspace>/.metadata/.plugins/org.Eclipse.jdt.core/*.index
  3. حذف <workspace>/.metadata/.plugins/org.Eclipse.jdt.core/savedIndexNames.txt
  4. ابدأ تشغيل Eclipse مرة أخرى

حصلت على هذا الخطأ في اليوم الآخر.حاولت حذف جميع ملفات وموارد .class من مجلد الإخراج الخاص بي يدويًا.لم تنجح.أعدت تشغيل جهاز الكمبيوتر الخاص بي (WinXP).لم تنجح.أغلقت مشروعي في Eclipse وفتحته مرة أخرى. عمل!!! يأمل أن يحل هذا مشكلة شخص ما هناك.مرافق البحث وضرورية حقًا لـ Eclipse.

لقد واجهت هذه المشكلة أيضًا مؤخرًا، وقد نجح السيناريو أدناه بالنسبة لي.

  1. إغلاق الكسوف
  2. يمسح <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. يمسح <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. ابدأ تشغيل Eclipse مرة أخرى

إغلاق المشاريع لم يجدي نفعاً بالنسبة لي.لقد بدأت الكسوف بالعلم النظيف وقد نجح ذلك لسبب ما.

فقط

  • إغلاق المشروع
  • مسح مجلد (مجلدات) الإخراج يدويًا
  • مشروع مفتوح

(Eclipse 3.5 SR2، معرف البنية:20100218-1602)

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