2008-08-09 13 views
64

Esperaba que alguien me pudiera ayudar con un problema que estoy teniendo al utilizar la función de búsqueda java en Eclipse en un proyecto en particular.El nombre del archivo de clase debe terminar con la excepción .class en Java Search

Cuando uso la búsqueda java en un proyecto en particular, recibo un mensaje de error que dice Class file name must end with .class (vea el seguimiento de pila a continuación). Esto no parece estar sucediendo en todos los proyectos, solo uno en particular, ¿entonces quizás hay algo que debería tratar de reconstruir?

Ya he intentado Project -> Clean ... y Cerrando Eclipse, borrando todos los archivos de la clase construida y reiniciando Eclipse en vano.

La única referencia que he podido encontrar en Google para el problema está en http://www.crazysquirrel.com/computing/java/eclipse/error-during-java-search.jspx, pero desafortunadamente su solución (cerrar, eliminar archivos de clase, reiniciar) no funcionó para mí.

Si alguien puede sugerir algo para probar, o si hay más información que pueda recopilar que podría ayudar a rastrearla, agradecería mucho los indicadores.

Version: 3.4.0 
Build id: I20080617-2000 

también acaba de encontrar este hilo - http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - lo que indica se puede producir cuando el nombre del proyecto contiene un punto con el mismo problema. Desafortunadamente, ese no es el caso en mi configuración, así que todavía estoy atascado.

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) 

Gracias McDowell, cerrando y abriendo el proyecto parece haber arreglado (al menos por ahora).

+0

Tal vez hay un problema con el classpath? ¿Tu proyecto hace referencia a otros proyectos o tiene una clase externa o tarros en los que dependes? –

Respuesta

62

Dos más mecanismos de propósito general para la fijación de algunas de las idiosincrasias de Eclipse:

  • cerrar y abrir el proyecto
  • eliminar el proyecto (! Pero no de disco) y volver a importar como un proyecto existente

En su defecto, bugs.eclipse.org podría proporcionar la respuesta.

Si el espacio de trabajo es el cacheado algo roto, que puede ser capaz de eliminarla por hurgar en espacio de trabajo/.metadata/.plugins. La mayoría de esas cosas es bastante transitoria (aunque es una copia de seguridad y observa las preferencias eliminadas).

+2

El cierre y la apertura del proyecto hicieron el truco. ¡Gracias! – Peter

+0

cerrar y abrir funcionó para mí también, tuve el mismo problema – panschk

+0

Cerrar y abrir funcionó para mí también. Anteriormente probé Project | Limpio ... en todo el espacio de trabajo, pero eso no solucionó el problema. Me pregunto qué proyecto cerrar y abrir hace además de limpiar ese proyecto. –

7

Recibí este error el otro día. Intenté eliminar manualmente todos los archivos .class y los recursos de mi carpeta de salida. No funcionó Reinicié mi computadora (WinXP). No funcionó Cerré mi proyecto en Eclipse y lo abrí de nuevo. ¡Funcionó! Espero que esto solucione el problema de alguien por ahí. Las facilidades de búsqueda y verdaderamente esenciales para Eclipse.

71

comentario #9 to bug 269820 explica cómo eliminar el índice de búsqueda, lo que parece ser la solución a un índice dañado cuyos síntomas son la temida

producido un error interno durante: "Los productos de filtrado".
nombre de archivo clase debe terminar con .class cuadro de mensaje

.

Cómo eliminar el índice de búsqueda:

  1. Cerrar Eclipse
  2. < Eliminar espacio de trabajo > /.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. < Eliminar espacio de trabajo > /.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. inicio Eclipse nuevo
+0

Esto funcionó para mí para corregir el error durante la búsqueda (CtrlShiftT) – JodaStephen

+0

Error menor 2. Eliminar .metadata.plugins \ org.eclipse.jdt.core \ *. Index –

+0

Esto funcionó para mí también. Lo encontré aquí: http://u.nu/3aqy3 Pero es el mismo procedimiento. ~ Chris – cimnine

5

También me encontré con este problema recientemente, el siguiente escenario funcionó para mí.

  1. Cerrar Eclipse
  2. Eliminar <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. Eliminar <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. inicio Eclipse nuevo
+0

¡Trabajó para mí! ¡Gracias! – shrini1000

3

El cierre de los proyectos no hacer el truco para mí. Comencé a eclipsar con la bandera limpia y eso funcionó por alguna razón.

+0

explicación de la opción de limpieza: "si se establece en" true ", cualquier dato almacenado en caché utilizado por OSGi framework y eclipse runtime se borrará. Esto limpiará los cachés utilizados para almacenar la resolución de dependencia del paquete y los datos del registro de extensiones de eclipse. forzar eclipse para reiniciar estas cachés ". –

2

Sólo

  • Cerrar proyecto
  • Borrar manualmente la carpeta de salida (s)
  • proyecto Open

(Eclipse 3.5 SR2, Build ID: 20100218-1602)

Cuestiones relacionadas