El nombre del archivo de clase debe terminar con la excepción .class en la búsqueda de Java

StackOverflow https://stackoverflow.com/questions/6816

  •  08-06-2019
  •  | 
  •  

Pregunta

Esperaba que alguien pudiera ayudarme con un problema que tengo al usar la función de búsqueda de Java en Eclipse en un proyecto en particular.

Cuando uso la búsqueda de Java en un proyecto en particular, aparece un mensaje de error que dice Class file name must end with .class (consulte el seguimiento de la pila a continuación).Esto no parece estar sucediendo en todos los proyectos, solo en uno en particular, así que tal vez hay algo que debería intentar reconstruir.

ya lo he probado Project -> Clean...y cerrar Eclipse, eliminar todos los archivos de clase creados y reiniciar Eclipse sin éxito.

La única referencia que he podido encontrar en Google sobre el problema es 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 hay más información que pueda recopilar que pueda ayudar a localizarlo, agradecería mucho sus sugerencias.

Version: 3.4.0
Build id: I20080617-2000

También acabo de encontrar este hilo. http://www.myeclipseide.com/PNphpBB2-viewtopic-t-20067.html - lo que indica que puede ocurrir el mismo problema cuando el nombre del proyecto contiene un punto.Desafortunadamente, ese no es el caso en mi configuración, así que sigo estancado.

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, cerrar y abrir el proyecto parece haberlo solucionado (al menos por ahora).

¿Fue útil?

Solución

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

  • Cerrar y abrir el proyecto.
  • Elimine el proyecto (¡pero no del disco!) y vuelva a importarlo como un proyecto existente.

Fallando en eso, errores.eclipse.org podría proporcionar la respuesta.

Si el espacio de trabajo está almacenando en caché algo roto, es posible que puedas eliminarlo husmeando en espacio de trabajo/.metadata/.plugins.La mayoría de esas cosas son bastante transitorias (aunque haga una copia de seguridad y esté atento a las preferencias eliminadas).

Otros consejos

Comentario #9 al error 269820 explica cómo eliminar el índice de búsqueda, que parece ser la solución a un índice corrupto cuyos síntomas son los temidos

Se produjo un error interno durante:"Filtrado de artículos".
El nombre del archivo de clase debe terminar en .class

buzon 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. Iniciar Eclipse nuevamente

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

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

  1. Cerrar eclipse
  2. Borrar <workspace>/.metadata/.plugins/org.eclipse.jdt.core/*.index
  3. Borrar <workspace>/.metadata/.plugins/org.eclipse.jdt.core/savedIndexNames.txt
  4. Iniciar Eclipse nuevamente

Cerrar los proyectos no me ayudó.Comencé eclipse con el indicador -clean y funcionó por alguna razón.

Justo

  • Cerrar proyecto
  • Borrar carpetas de salida manual
  • Proyecto abierto

(Eclipse 3.5 SR2, ID de compilación:20100218-1602)

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top