2012-07-08 13 views
16

Si hago un refactor de renombrado en algo, trata de hacerlo por un momento pero luego simplemente lo revierte a su nombre anterior. No se muestran errores ni ninguna indicación de que algo esté mal.no se puede refabricar renombrar en eclipse

...

Eclipse Sólo reiniciado y ahora es aún peor. Antes, al menos seleccionar refactor-> renombraría, "boxearía" el nombre y pretendería que le permite hacer un refactor. Ahora, después de reiniciar, seleccionar refactor-> renombrar no hace nada.

Lo siento si esto se solicita en el área incorrecta o en el subsitio de StackExchange, pero no sabía dónde más preguntar. He buscado muchas veces en Google para encontrar una respuesta a este problema y no ha surgido nada.

Win7 64 bits
Eclipse Indigo construir 20110615-0604

+1

¿Qué opinión se encuentra usted? ¿Qué estás renombrando, y para qué? Solo debe proporcionar más información si realmente espera alguna ayuda ... – arcy

+1

Verifique también si el proyecto tiene algún error de compilación. En algún momento con errores de compilación, no te permite refaccionar las cosas. – vikas

+1

Esto me sucedió al intentar cambiar el nombre en un método de Javascript. JSDT está instalado. Eliminar y agregar proyectos no ayuda. – Nilzor

Respuesta

3

intenta eliminar el proyecto de Eclipse (no elimine el contenido del proyecto en el disco) y luego vuelva a cargarlo.

0

Estaba viendo exactamente el mismo problema que el OP cuando estaba tratando de cambiar el nombre de las dos variables y los nombres de los métodos. Después de reiniciar Eclipse, la funcionalidad Refactor-> Cambiar nombre funcionó correctamente.

1

Tuve este problema con Eclipse Helios. Busqué en el directorio .metadata del espacio de trabajo y abrí el archivo .log. Tenía una cadena bastante larga de referencias relacionadas con el error, pero las partes pertinentes de los que estaban:

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

y

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)

fui a Ayuda>instalar nuevo software>Lo que ya está instalado, y luego seleccionó todo lo relacionado con org.eclipse.swt e hizo clic en Desinstalar. Después de reiniciar Eclipse, el problema desapareció y pude refactorizar/cambiar el nombre normalmente de nuevo.

+0

Mismo aquí con Kepler – leonbloy

1

El refactor no funcionará si hay algún error en su proyecto.

Corrija los errores, o simplemente comente la sección que se detecta como un error para ejecutar el refactor.

Esto funcionó para mí.

0

Si algo no demasiado obvio hace que un refactorizador falle, puede buscar problemas al intentar obtener una vista previa del refactor en lugar de tratar de ejecutarlo.

Como mencionó Dicky Moore, no puede refactorizar con errores en su proyecto ... Pero estos no son siempre errores de código o problemas de compilación de ruta que marca Eclipse. Por lo tanto, a veces no parece que tenga ningún error y aún así fallará. "Vista previa", como se mencionó anteriormente, mostrará estos problemas en un cuadro de diálogo de error, incluso si nunca se muestran en otro lugar.

A partir de ahí, puede configurar su proyecto para corregir los errores (uno común es que el refactor intenta dar cuenta de una carpeta de salida que no debería, que se puede arreglar excluyendo la carpeta en su configuración Build Path > Source).) o desinstalar complementos problemáticos.

0

Con 4.4 (Luna), tuve problemas de refactorización de proyectos cruzados después de refactorizaciones grandes: eliminé la carpeta /.metadata/.plugins/org.eclipse.jdt.core arreglada para mí

1

Quería agregar algo de información a algunos otras respuestas aquí.

Archenoth's answer señala que puede obtener más información al ejecutar Vista previa en la operación de cambio de nombre. Me tomó un tiempo descubrir cómo obtener una vista previa: escriba la tecla de cambio de nombre una segunda vez para obtener el diálogo. En ocasiones, Preview no proporcionaba la información del error (y tampoco lo hacía el cambio de nombre rápido sin la ppoup), pero al hacer clic en Aceptar en el diálogo decía más.

MutantXenu encontrado información de los registros por entrar en los archivos del espacio de trabajo, pero también se puede llegar a estos dentro de Eclipse, vaya a la vista de registro de errores (de Cmd-3)

Cuando tuve este problema, el registro de errores me indicó esta afirmación fallida: "La búsqueda de declaración de método no encontró el elemento original", lo que generó algunos errores no resueltos. (Estoy ejecutando Kepler, pero el problema es aparentemente difícil de replicar y no veo evidencia de que se haya resuelto. Consulte here y here.)

Puede ver si está experimentando este error específico al seleccionar el método y usando Cmd-G (o Ctrl-G: Buscar> Declaraciones> Espacio de trabajo). Eclipse no puede encontrar el método que intenta cambiar de nombre y la búsqueda aparece vacía.

Mi caso sugiere que es posible que el error tenga que ver con métodos idénticos en diferentes clases. Cuando el problema ocurre con un método, no afecta a la mayoría de los demás.

Actualizar, Proyecto-> Limpiar, y reiniciar Eclipse no me ayudaron. Kevin's answer funcionó para mí: "Intente eliminar el proyecto de Eclipse (no elimine los contenidos del proyecto en el disco) y luego vuelva a cargarlo".

1

Si bien los métodos de cambio de nombre directamente en el editor no funciona en casos muy raros y luego el IDE restaura el nombre del método orignal después de pulsar la tecla de retorno - una especie de "modo agnóstico" :-), cuando lo haga la misma a través de Refactoring - >Cambiar Methode Signature, en la esquina superior derecha, cambio el nombre del método, luego recibo un mensaje de error completamente detallado: "Ocurrió una excepción inesperada al realizar la refactorización ... Motivo: anónimo # 1 en .... en lambda # 1 ... en ... Copia de trabajo ... no existe. "

Esto indica, que el cambio de nombre métodos desencadena este fracaso, cuando se usa el método para cambiar el nombre en el contexto de una lambda o clase anónima.

Para comprobar, comentar la aparición en la clase lambda o anónima, la refabricación/cambio de nombre podría funcionar como se esperaba en mi caso.

0

Had mismo problema:

  • clic izquierdo en el nombre de la propiedad en la clase java
  • clic derecho
  • refactor
  • cambiar el nombre
  • hacer el cambio de nombre
  • pulse enter
  • verde la barra de progreso aparece en el menú de pie de página pero nunca termina
  • para recuperar lo que tengo que matar a Eclipse (que puede intentar salir pero se bloqueará cuando se guarde el estado banco de trabajo)

Me estoy quedando esto en Windows:

  • Versión: Kepler Service Release 2
  • Identificación del
  • Cuerpo: 20140224-0627

que 'fija' el comportamiento por:

  • haciendo un pequeño cambio en el archivo
  • guardar el archivo
  • vuelve a intentar la refactor y funcionó muy bien (aunque hay un retardo incómoda esperando el refactor para completar circa cinco segundos)

Hay no hubo errores en el proyecto, nada obvio en los registros cuando se cuelga y tampoco fue correcto eliminar/reimportar el proyecto del espacio de trabajo (y eliminar .classpath .project y .settings antes de volver a importar).

0

intente lo siguiente (sólo funcionó para mí):

  1. eliminar el proyecto
  2. Crear un nuevo proyecto Java con el mismo nombre
Cuestiones relacionadas