2012-07-08 12 views
16

Jeśli zrobię zmianę nazwy czegoś na coś, spróbuje to zrobić na chwilę, ale potem po prostu wraca z powrotem do tego, co wcześniej nazwano. Nie widać żadnych błędów ani żadnych wskazań, że coś jest nie tak.nie może zmienić nazwy refaktora w eclipse

...

Wystarczy spowodowała ponowne uruchomienie zaćmienie, a teraz jest jeszcze gorzej. Przedtem, wybierając przynajmniej refactor-> rename, "zapakowałoby" nazwę i udawało, że pozwala ci zrobić refaktor. Teraz, po ponownym uruchomieniu, wybór refactor-> rename does not nothing.

Przepraszam, jeśli jest to zadawane w niewłaściwym obszarze lub podstronie StackExchange, ale nie wiedział, gdzie jeszcze zapytać. Często googlowałem, próbując znaleźć odpowiedź na ten problem i nic się nie wydarzyło.

Win7 64 bit
Eclipse Indigo budować 20110615-0604

+1

Co jesteś w widoku? Jak zmieniasz nazwę i do czego? Musisz tylko podać więcej informacji, jeśli faktycznie potrzebujesz pomocy ... – arcy

+1

Sprawdź również, czy w projekcie wystąpił błąd kompilacji. Czasami z błędami kompilacji nie pozwala ci to na refaktoryzację. – vikas

+1

Stało się to przy próbie zmiany nazwy w metodzie Javascript. Zainstalowany JSDT. Usunięcie i dodanie projektu nie pomogło. – Nilzor

Odpowiedz

3

próby usunięcia projektu z Eclipse (nie usunąć zawartość projektu na dysku), a następnie załaduj go ponownie.

0

Widziałem dokładnie ten sam problem co OP, gdy próbowałem zmienić nazwę zarówno zmiennych, jak i nazw metod. Po ponownym uruchomieniu Eclipse, funkcja Refactor-> Rename działała poprawnie.

1

Miałem ten problem z Eclipse Helios. Zajrzałem do katalogu .metadata w obszarze roboczym i otworzyłem plik .log. Miał dość długi łańcuch odnośników odnoszących się do błędu, ale istotne elementy, które były:

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

i

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)

Poszedłem do Pomoc>zainstalować nowe oprogramowanie>Co już zostało zainstalowane, a następnie wybrane wszystko związane z plikiem org.eclipse.swt i kliknięte na Odinstaluj. Po ponownym uruchomieniu Eclipse problem zniknął i mogłem ponownie zmienić normalnie/zmienić nazwę.

+0

To samo dotyczy Kepler – leonbloy

1

Refaktor nie zadziała, jeśli wystąpią błędy w projekcie.

Napraw błędy lub po prostu skomentuj sekcję wykrywaną jako błąd w celu uruchomienia refaktora.

To zadziałało dla mnie.

0

Jeśli coś, co nie jest zbyt oczywiste, powoduje awarię refaktora, możesz szukać problemów, próbując wyświetlić podgląd refaktora, zamiast próbować go wykonać.

Jak wspomniał Dicky Moore, nie można pominąć błędów w projekcie ... Jednak nie zawsze są to błędy kodu lub problemy z budową ścieżki, które pojawiają się w Eclipse. Czasami nie wydaje się, że masz jakieś błędy, ai tak się nie uda. "Podgląd", jak wspomniano powyżej, pokaże te problemy w oknie dialogowym błędu, nawet jeśli nigdy nie pojawią się w innym miejscu.

Stamtąd można skonfigurować projekt w celu naprawienia błędów (często jest tak, że refaktor próbuje obliczyć folder wyjściowy, który nie powinien, który można naprawić, wykluczając folder w ustawieniach Build Path > Source.) lub odinstaluj problematyczne wtyczki.

0

Z 4.4 (Luna), miałem problemy z refaktoryzacją projektów po dużych refaktoryzacjach - usunięcie folderu /.metadata/.plugins/org.eclipse.jdt.core naprawiło to dla mnie

1

Chciałem dodać pewne informacje do niektórych inne odpowiedzi tutaj.

Archenoth's answer Wskazuje, że można uzyskać więcej informacji na temat uruchamiania podglądu w operacji zmiany nazwy. Zajęło mi trochę czasu, aby dowiedzieć się, jak dostać się do podglądu: wpisz ponownie nazwę klawisza po raz drugi, aby uzyskać okno dialogowe. Czasami funkcja podglądu nie podała informacji o błędzie (i nie zmieniła się szybko bez ppoup), ale kliknięcie przycisku OK w oknie dialogowym powiedziało więcej.

MutantXenu znaleźć informacje w dziennikach przechodząc do plików w przestrzeni roboczej, ale można również dostać się do nich w ciągu Eclipse, przechodząc do widoku Error Log (z Cmd-3)

Gdy miałem ten problem, dziennik błędów wskazał mi na to nieudane stwierdzenie: "Wyszukiwarka deklaracji metod nie znalazła oryginalnego elementu", co doprowadziło do niektórych nierozwiązanych błędów. (Używam Keplera, ale problem jest najwyraźniej trudny do zreplikowania i nie widzę dowodu, że został rozwiązany. Zobacz here i here.)

Możesz zobaczyć, czy doświadczasz tego konkretnego błędu, wybierając metodę i używając Cmd-G (lub Ctrl-G: Wyszukaj> Deklaracje> Przestrzeń robocza). Eclipse nie może znaleźć metody, którą próbujesz zmienić, a wyszukiwanie jest puste.

Moja sprawa sugeruje, że błąd może dotyczyć metod o identycznej nazwie w różnych klasach. Gdy problem występuje w jednej metodzie, nie ma wpływu na większość innych.

Odświeżanie, projektowanie-> czyszczenie i ponowne uruchamianie Eclipse nie były dla mnie pomocne. Kevin's answer pracował dla mnie: "Spróbuj usunąć projekt z Eclipse (nie usuwaj zawartości projektu na dysku), a następnie załaduj ponownie."

1

Podczas zmieniania nazw metod bezpośrednio w edytorze nie działa w bardzo rzadkich przypadkach, a następnie IDE przywraca nazwę metody po naciśnięciu klawisza Return - rodzaj "trybu agnostycznego" :-), kiedy robię to samo poprzez Refaktoryzację - >Zmień Podpis Metode, w prawym górnym rogu Zmieniam nazwę metody, a następnie otrzymuję w pełni szczegółowy komunikat o błędzie: "Wystąpił nieoczekiwany wyjątek podczas wykonywania refaktoryzacji ... Powód: anonimowy # 1 w .... w lambda # 1 ... in ... Working Copy ... nie istnieje. "

Wskazuje, że zmiana nazwy metod wyzwala to niepowodzenie, , gdy metoda do zmiany nazwy jest używana w kontekście lambda lub anonimowej klasy.

Aby sprawdzić, skomentować zdarzenie w klasie lambda lub anonimowej, refaktoryzacja/zmiana nazwy mogła działać zgodnie z oczekiwaniami, tak jak w moim przypadku.

0

Gdyby sam problem:

  • kliknij lewym przyciskiem myszy na nazwę właściwości w klasie java
  • prawym przyciskiem
  • Refactor
  • przemianować
  • zrobić rename
  • naciśnij wprowadzić
  • zielony pasek postępu pojawia się w menu stopki, ale nigdy nie kończy się
  • odzyskać muszę zabić zaćmienie (można spróbować wychodzącego ale będzie to powiesić podczas zapisywania stanu Workbench)

biegnę to na oknach:

  • Wersja: Kepler Service Release 2
  • Budowa id: 20140224-0627

ja 'stałe' zachowanie przez:

  • dokonując niewielkiej zmiany w pliku
  • zapisując plik
  • ponowiona w Refactor i to działało w porządku (choć nie jest to niewygodne opóźnienie czeka na Refactor aby zakończyć circa pięć sekund)

Nie nie było błędów w projekcie, nic nie było oczywiste w dziennikach, gdy zawiesza się i usuwanie lub ponowne importowanie projektu z obszaru roboczego również nie działało (i usuwanie .classpath .project i .settings przed ponownym importowaniem).

0

Spróbuj wykonać następujące czynności (tylko pracował dla mnie):

  1. Usuń projekt
  2. Tworzenie nowego projektu java o tej samej nazwie
Powiązane problemy