2008-08-09 6 views
64

मुझे उम्मीद थी कि कोई समस्या किसी समस्या के साथ मेरी मदद कर सकता है जिसे मैं किसी विशेष प्रोजेक्ट पर एक्लिप्स में जावा खोज फ़ंक्शन का उपयोग कर रहा हूं।क्लास फ़ाइल का नाम जावा खोज में .class अपवाद के साथ समाप्त होना चाहिए

एक विशेष परियोजना पर जावा खोज का उपयोग करते समय, मुझे एक त्रुटि संदेश मिलता है जिसमें Class file name must end with .class (नीचे स्टैक ट्रेस देखें)। ऐसा लगता है कि यह सभी परियोजनाओं पर नहीं हो रहा है, सिर्फ एक विशेष व्यक्ति है, तो शायद कुछ ऐसा है जो मुझे पुनर्निर्मित करने की कोशिश करनी चाहिए?

मैंने पहले से ही Project -> Clean ... और समापन ग्रहण की कोशिश की है, सभी निर्मित वर्ग फ़ाइलों को हटाया है और ग्रहण को फिर से शुरू करने का कोई फायदा नहीं हुआ है।

एकमात्र संदर्भ जो मैं समस्या के लिए Google पर खोजने में सक्षम हूं, http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx पर है, लेकिन दुर्भाग्यवश उसका समाधान (बंद करना, क्लास फाइलों को हटाना, पुनरारंभ करना) मेरे लिए काम नहीं करता है।

अगर कोई कोशिश करने के लिए कुछ सुझाव दे सकता है, या कोई और जानकारी है जो मैं इकट्ठा कर सकता हूं जो इसे ट्रैक करने में मदद कर सकता है, तो मैं पॉइंटर्स की बहुत सराहना करता हूं। http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - - जो एक ही समस्या हो सकता है जब इस परियोजना का नाम अवधि शामिल है इंगित करता है

Version: 3.4.0 
Build id: I20080617-2000 

इसके अलावा सिर्फ इस सूत्र मिल गया। दुर्भाग्यवश, यह मेरे सेटअप में मामला नहीं है, इसलिए मैं अभी भी अटक गया हूं।

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) 

धन्यवाद मैकडॉवेल, प्रोजेक्ट को बंद करना और खोलना प्रतीत होता है (कम से कम अभी तक)। ग्रहण के idiosyncrasies के कुछ ठीक करने के लिए

+0

शायद कक्षापथ के साथ कोई मुद्दा है? क्या आपकी परियोजना किसी अन्य परियोजनाओं का संदर्भ देती है या आपके पास बाहरी कक्षाएं या जार हैं जिन पर आप निर्भर हैं? –

उत्तर

62

दो और सामान्य प्रयोजन तंत्र:

  • बंद और खोलने परियोजना
  • प्रोजेक्ट हटाएं (! लेकिन डिस्क से नहीं) और एक मौजूदा परियोजना के रूप में यह फिर आयात

विफल होने पर, bugs.eclipse.org उत्तर प्रदान कर सकता है।

यदि वर्कस्पेस कुछ तोड़ रहा है, तो आप इसे वर्कस्पेस/.metadata/.plugins में घूमकर इसे हटा सकते हैं। उस सामान में से अधिकांश काफी क्षणिक है (हालांकि हटाए गए वरीयताओं के लिए बैकअप और घड़ी)।

+2

प्रोजेक्ट को बंद करना और खोलना चाल था। धन्यवाद! – Peter

+0

बंद करने और खोलने के लिए भी मेरे लिए काम किया, मुझे एक ही समस्या थी – panschk

+0

मेरे लिए बंद और खोलें भी। पहले मैंने परियोजना की कोशिश की स्वच्छ ... पूरे कार्यक्षेत्र पर, लेकिन इससे समस्या ठीक नहीं हुई। मैं सोच रहा हूं कि परियोजना को साफ करने के अलावा परियोजना बंद और खुली है। –

7

इस त्रुटि को दूसरे दिन मिला। मैन्युअल रूप से मेरे आउटपुट फ़ोल्डर से सभी .class-files और संसाधनों को हटाने का प्रयास किया। काम नहीं किया मेरे कंप्यूटर को पुनरारंभ किया (WinXP)। काम नहीं किया ग्रहण में मेरी परियोजना बंद कर दिया और इसे फिर से खोल दिया। काम किया !!! उम्मीद है कि यह किसी समस्या को हल करता है। ग्रहण के लिए खोज सुविधाएं और वास्तव में आवश्यक है। "आइटम फ़िल्टर":

71

टिप्पणी #9 to bug 269820 कैसे खोज इंडेक्स है, जो एक भ्रष्ट सूचकांक जिसका लक्षण हैं खतरनाक

दौरान एक आंतरिक त्रुटि हुई का हल हो गया लगता है को नष्ट करने के बताते हैं।
कक्षा फ़ाइल नाम .class

संदेश बॉक्स के साथ समाप्त होना चाहिए।

खोज अनुक्रमणिका कैसे हटाएं:

  1. बंद ग्रहण
  2. हटाएँ < कार्यक्षेत्र > /.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. हटाएँ < कार्यक्षेत्र > /.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. प्रारंभ ग्रहण फिर
+0

यह खोज के दौरान त्रुटि को ठीक करने के लिए मेरे लिए काम करता है (CtrlShiftT) – JodaStephen

+0

मामूली टाइपो 2. हटाएं .metadata.plugins \ org.eclipse.jdt.core \ *। अनुक्रमणिका –

+0

यह मेरे लिए भी काम करता है। इसे यहां मिला: http://u.nu/3aqy3 लेकिन यह वही प्रक्रिया है। ~ क्रिस – cimnine

5

मुझे हाल ही में इस मुद्दे का सामना करना पड़ा, नीचे दिया गया परिदृश्य मेरे लिए काम करता था।

  1. बंद ग्रहण
  2. हटाएँ <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. हटाएँ <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. प्रारंभ ग्रहण फिर
+0

मेरे लिए काम किया! धन्यवाद! – shrini1000

3

परियोजनाओं को बंद करने से मेरे लिए चाल नहीं किया। मैंने स्क्वायर फ्लैग के साथ ग्रहण शुरू किया और कुछ कारणों से काम किया।

+0

स्वच्छ विकल्प स्पष्टीकरण: "यदि" सत्य "पर सेट किया गया है, तो ओएसजीआई फ्रेमवर्क और ग्रहण रनटाइम द्वारा उपयोग किए गए किसी भी कैश किए गए डेटा को साफ कर दिया जाएगा। यह बंडल निर्भरता संकल्प और ग्रहण विस्तार रजिस्ट्री डेटा को स्टोर करने के लिए उपयोग किए जाने वाले कैश को साफ़ करेगा। इस विकल्प का उपयोग करने से इन कैशों को फिर से शुरू करने के लिए ग्रहण को मजबूर करें। " –

2

बस

  • बंद परियोजना
  • साफ़ मैन्युअल आउटपुट फ़ोल्डर (रों)
  • ओपन परियोजना

(3,5 SR2 ग्रहण, आईडी बिल्ड: 20,100,218-1602)

संबंधित मुद्दे