2012-07-08 22 views
16

में पुनर्नामित नहीं कर सकता है अगर मैं कुछ पर एक रिफैक्टर नाम बदलता हूं, तो यह एक पल के लिए ऐसा करने की कोशिश करता है लेकिन फिर इसे पहले से नामित किया गया था। कोई त्रुटि या कोई संकेत नहीं कि कुछ गलत है दिखाया गया है।ग्रहण

...

बस को पुन: प्रारंभ ग्रहण और अब यह और भी बदतर है। इससे पहले, कम से कम रिफैक्टर का चयन करें-> नाम बदलकर "बॉक्स" होगा और यह दिखाएगा कि यह आपको एक रिफैक्टर करने दे रहा है। अब, पुनरारंभ करने के बाद, रिफैक्टर का चयन-> नाम बदलें कुछ भी नहीं करता है।

क्षमा करें अगर यह गलत क्षेत्र या StackExchange की उप-साइट में पूछा गया है, लेकिन यह नहीं पता था कि और कहां से पूछना है। मैंने कई बार इस समस्या का जवाब खोजने की कोशिश की है और कुछ भी नहीं हुआ है।

Win7 64 बिट
ग्रहण इंडिगो का निर्माण 20110615-0604

+1

क्या ध्यान में रखते हुए आप कर रहे हैं के साथ एक नया जावा प्रोजेक्ट बना हटाना चाहते हैं? आप क्या नाम बदल रहे हैं, और क्या? यदि आपको वास्तव में कुछ मदद की उम्मीद है तो आपको केवल अधिक जानकारी देना होगा ... – arcy

+1

यह भी सत्यापित करें कि प्रोजेक्ट में कोई संकलन त्रुटि है या नहीं। कभी-कभी संकलन त्रुटियों के साथ यह आपको चीजों को दोबारा करने की अनुमति नहीं देता है। – vikas

+1

जावास्क्रिप्ट विधि पर नाम बदलने का प्रयास करते समय यह मेरे साथ हुआ। जेएसडीटी स्थापित है। परियोजना को हटाने और जोड़ने में मदद नहीं मिली। – Nilzor

उत्तर

3

कोशिश ग्रहण से परियोजना (डिस्क पर परियोजना सामग्री हटा दें नहीं है) और फिर इसे फिर से लोड हटाने के लिए।

0

मैं ओपी के समान सटीक समस्या देख रहा था जब मैं दोनों चर, और विधि नामों का नाम बदलने का प्रयास कर रहा था। ग्रहण को पुनरारंभ करने के बाद, रिफैक्टर-> नाम बदलें कार्यक्षमता सही ढंग से काम करती है।

1

मुझे एक्लिप्स हेलीओस के साथ यह समस्या थी। मैंने वर्कस्पेस की .metadata निर्देशिका में देखा और .log फ़ाइल खोला। यह त्रुटि से संबंधित संदर्भों की एक बहुत लंबी श्रृंखला की थी, लेकिन इस बात का उचित भागों थे:

java.lang.NoClassDefFoundError: org/eclipse/jdt/core/IMethod

और

java.lang.reflect.InvocationTargetException at org.eclipse.jface.operation.ModalContext.run(ModalContext.java:421) at org.eclipse.jface.window.ApplicationWindow$1.run(ApplicationWindow.java:759) at org.eclipse.swt.custom.BusyIndicator.showWhile(BusyIndicator.java:70) at org.eclipse.jface.window.ApplicationWindow.run(ApplicationWindow.java:756) at org.eclipse.ui.internal.WorkbenchWindow.run(WorkbenchWindow.java:2606) at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper.perform(RefactoringExecutionHelper.java:191) at org.eclipse.jdt.internal.ui.refactoring.RefactoringExecutionHelper.perform(RefactoringExecutionHelper.java:151) at org.eclipse.jdt.ui.refactoring.RenameSupport.perform(RenameSupport.java:197) at org.eclipse.jdt.internal.ui.refactoring.reorg.RenameLinkedMode.doRename(RenameLinkedMode.java:361) at org.eclipse.jdt.internal.ui.refactoring.reorg.RenameLinkedMode$EditorSynchronizer.left(RenameLinkedMode.java:119) at org.eclipse.jface.text.link.LinkedModeModel.exit(LinkedModeModel.java:341) at org.eclipse.jface.text.link.LinkedModeUI$4.run(LinkedModeUI.java:1194) at org.eclipse.swt.widgets.RunnableLock.run(RunnableLock.java:35) at org.eclipse.swt.widgets.Synchronizer.runAsyncMessages(Synchronizer.java:134) at org.eclipse.swt.widgets.Display.runAsyncMessages(Display.java:4041) at org.eclipse.swt.widgets.Display.readAndDispatch(Display.java:3660)

मैं सहायता>स्थापित नए सॉफ्टवेयर के लिए चला गया>पहले से ही स्थापित किया गया है, और उसके बाद org.eclipse.swt से संबंधित सबकुछ चुना गया है और पर क्लिक किया गया अनइंस्टॉल करें। ग्रहण को पुनरारंभ करने के बाद, समस्या दूर हो गई और मैं सामान्य रूप से फिर से प्रतिक्रिया/नाम बदलने में सक्षम था।

+0

केप्लर के साथ यहां वही है – leonbloy

1

यदि आपकी परियोजना में कोई त्रुटि है तो रिफैक्टर काम नहीं करेगा।

त्रुटियों को ठीक करें, या केवल रेफैक्टर चलाने के लिए त्रुटि के रूप में वर्णित अनुभाग को टिप्पणी करें।

यह मेरे लिए काम किया।

0

यदि कुछ अधिक स्पष्ट रूप से स्पष्ट नहीं होता है तो एक रिफैक्टर विफल हो जाता है, तो आप इसे निष्पादित करने की कोशिश करने के बजाय रिफैक्टर का पूर्वावलोकन करने का प्रयास करके समस्याओं की तलाश कर सकते हैं।

जैसा कि डिकी मूर ने उल्लेख किया है, आप अपनी परियोजना में त्रुटियों के साथ दोबारा प्रतिक्रिया नहीं दे सकते ... लेकिन ये हमेशा कोड त्रुटियां नहीं हैं या ग्रहण चिह्नों के पथ मुद्दों का निर्माण नहीं करते हैं। तो कभी-कभी ऐसा नहीं लगता है कि आपको कोई त्रुटि है और यह अभी भी असफल हो जाएगी। उपरोक्त वर्णित "पूर्वावलोकन" इन समस्याओं को एक त्रुटि संवाद में दिखाएगा, भले ही वे कहीं और दिखाई न दें।

वहां से, आप त्रुटियों को ठीक करने के लिए अपनी प्रोजेक्ट को कॉन्फ़िगर कर सकते हैं (एक आम बात यह है कि रिफैक्टर एक आउटपुट फ़ोल्डर के लिए खाता करने का प्रयास करता है जिसे इसे नहीं करना चाहिए, जिसे आपके Build Path > Source सेटिंग्स में फ़ोल्डर को छोड़कर तय किया जा सकता है।) या समस्याग्रस्त प्लगइन्स अनइंस्टॉल करें।

0

4 के साथ।4 (लूना), मैं बड़े refactorings के बाद पार परियोजना रिफैक्टरिंग समस्या नहीं थी - /.metadata/.plugins/org.eclipse.jdt.core फ़ोल्डर को हटाने तय है कि के लिए मुझे

1

मैं कुछ के लिए कुछ जानकारी जोड़ना चाहते थे अन्य जवाब यहाँ।

Archenoth's answer बताते हैं आप नाम बदलने की कार्रवाई पर पूर्वावलोकन चलने से और अधिक जानकारी प्राप्त कर सकते हैं। पूर्वावलोकन करने के तरीके को समझने में मुझे कुछ समय लगा: संवाद प्राप्त करने के लिए दूसरी बार नाम बदलें कीस्ट्रोक टाइप करें। कभी-कभी पूर्वावलोकन ने त्रुटि जानकारी नहीं दी (और न ही पीपीओपी के बिना त्वरित नाम बदल दिया) लेकिन संवाद में ठीक क्लिक करने से और कहा गया।

MutantXenu जानकारी जब मैं इस समस्या थी

(Cmd-3 से) कार्यक्षेत्र में फ़ाइलों में जाकर लॉग में पाया है, लेकिन आप भी त्रुटि लॉग देखने के लिए जा रहा द्वारा ग्रहण के भीतर इन करने के लिए प्राप्त कर सकते हैं, त्रुटि लॉग ने मुझे इस असफल दावे पर इंगित किया: "विधि घोषणा के लिए खोज मूल तत्व नहीं मिला" जिसके कारण कुछ अनसुलझा बग सामने आए। (मैं केपलर चल रहा हूँ, लेकिन समस्या यह जाहिरा तौर पर दोहराने के लिए कठिन है और मैं सबूत इसका समाधान नहीं होता नहीं दिख रहा। here और here देखें।)

यदि आप विधि का चयन करके इस विशिष्ट बग का सामना कर रहे आप देख सकते हैं और सीएमडी-जी (या Ctrl-G: खोज> घोषणाएं> वर्कस्पेस) का उपयोग करना। ग्रहण उस विधि को खोजने में असमर्थ है जिसे आप पुनर्नामित करने का प्रयास कर रहे हैं और खोज खाली हो गई है।

मेरा मामला बताता है कि यह संभव है कि त्रुटि को अलग-अलग वर्गों में समान नामित विधियों के साथ करना पड़ सकता है। जब समस्या एक विधि के साथ होती है, तो यह अधिकतर लोगों को प्रभावित नहीं करती है।

ताज़ा करें, परियोजना-> स्वच्छ, और ग्रहण पुनरारंभ करना मेरे लिए सहायक नहीं था। Kevin's answer मेरे लिए काम किया: "ग्रहण से परियोजना को हटाने का प्रयास करें (डिस्क पर प्रोजेक्ट सामग्री को हटाएं) और फिर इसे पुनः लोड करें।"

1

जबकि संपादक में सीधे तरीके से नामकरण विधियां बहुत ही दुर्लभ मामलों में काम नहीं करती हैं और फिर आईडीई रिटर्नक्टिंग के माध्यम से रिटर्न कुंजी दबाए जाने के बाद ऑर्गेनिक विधि नाम को पुनर्स्थापित करती है - "अज्ञेय मोड" :-), जब मैं रिफैक्टरिंग के माध्यम से ऐसा करता हूं - >ऊपरी दाएं कोने में मेथोड हस्ताक्षर बदलें, मैं विधि का नाम बदलता हूं, फिर मुझे एक पूरी तरह से विस्तृत त्रुटि संदेश प्राप्त होता है: "रिफैक्टरिंग करने के दौरान एक अनपेक्षित अपवाद हुआ ... कारण: अज्ञात # 1 में .... में लैम्ब्डा # 1 ... में ... कामकाजी प्रतिलिपि ... मौजूद नहीं है। "

यह इंगित करता है कि नामकरण विधियों को इस विफलता को ट्रिगर करता है, जब नाम बदलने की विधि लैम्बडा या अज्ञात वर्ग के संदर्भ में उपयोग की जाती है।

, जाँच लैम्ब्डा या अनाम कक्षा में घटना बाहर टिप्पणी करने के लिए, रिफैक्टरिंग/नाम तो के रूप में यह मेरे मामले में किया था अपेक्षा के अनुरूप काम कर सकता है।

0

था एक ही मुद्दा:

    जावा वर्ग में संपत्ति के नाम पर
  • लेफ्ट क्लिक
  • सही क्लिक
  • refactor
  • नाम बदलने
  • नाम बदलने
  • प्रेस कर दर्ज
  • हरी प्रगति पट्टी पाद लेख मेनू पर दिखाई देती है लेकिन कभी भी
  • खत्म नहीं होती है
  • मैं ग्रहण को मारने के लिए है ठीक करने के लिए (क्या आप बाहर निकलने की कोशिश कर सकते हैं, लेकिन जब कार्यक्षेत्र राज्य बचत यह रखती हूँ)

मैं खिड़कियों पर यह चल रहा हूँ:

  • संस्करण: केपलर सेवा रिलीज़ 2
  • बिल्ड आईडी: 20140224-0627

मैं 'फिक्स्ड' से व्यवहार:

  • फ़ाइल
  • फ़ाइल
  • refactor पुनः प्रयास किया और यह ठीक काम किया है (हालांकि वहाँ लगभग पाँच सेकंड पूरा करने के लिए एक असहज देरी refactor के लिए इंतज़ार कर)

वहाँ बचत करने के लिए एक छोटा सा परिवर्तन कर रही है प्रोजेक्ट में कोई गलती नहीं थी, जब यह कार्य करता है तो लॉग में कुछ भी स्पष्ट नहीं होता है और कार्यक्षेत्र से परियोजना को हटाना/पुनः आयात करना या तो काम नहीं करता है (और पुनः आयात करने से पहले .classpath .project और .settings को हटा रहा है)।

0

(सिर्फ मेरे लिए काम किया) निम्नलिखित का प्रयास करें:

  1. परियोजना
  2. एक ही नाम