La finalización del código Eclipse / Java no funciona

596

He descargado, descomprimido y configurado Eclipse 3.4.2 con algunos complementos (notable, EPIC, Clearcase, QuantumDB, MisterQ).

Ahora encuentro que cuando estoy editando proyectos Java, la finalización del código no funciona. Si escribo String.y presiono ctrl+ spaceuna ventana emergente muestra "No hay propuestas predeterminadas" y la barra de estado en la parte inferior muestra "No hay finalizaciones disponibles".

¿Algunas ideas?

Robert Brown
fuente
1
Para aquellos de ustedes que están tratando de arreglar esto en Ubuntu, [aquí está la respuesta] [1]. [1]: askubuntu.com/questions/243639/…
sintagma

Respuestas:

1247

Intenta restaurar las opciones predeterminadas en ' Windows > Preferences > Java > Editor > Content Assist > Advanced'

Un ejemplo del tipo de datos que ve en esta pantalla de preferencias, sin embargo, no necesariamente lo que tiene actualmente.

configuración de asistencia de contenido de eclipse

(De Vadim en esta publicación de blog "Duplicados de asistencia de contenido en Eclipse (Mylyn)" :
si tiene entradas duplicadas de Mylyn, desmarque las entradas duplicadas que no contengan " (Mylyn)" en su nombre)

La página de ayuda de Eclipse define la lista predeterminada para restaurar:

Seleccione los tipos de propuesta que figuran en la lista de asistencia de contenido 'predeterminada' :

  • Otras propuestas de Java,
  • SWT Template Proposals,
  • Propuestas de plantilla,
  • Propuestas de tipo
VonC
fuente
3
no tengo idea de cómo se cambió esto en mi entorno; ciertamente no lo hice, ¡pero su solución funciona! Gracias.
pstanton
71

Estoy agregando una respuesta aquí en caso de que alguien más encuentre esto en Google. Los mismos síntomas Problema diferente. Para mí, el tipo de cachés se había corrompido.

De http://mschrag.blogspot.co.nz/2009/01/open-type-cant-find-your-class.html

  • Salir de Eclipse
  • Vaya al espacio de trabajo / .metadata / .plugins / org.eclipse.jdt.core
  • Elimine * .index y savedIndexNames.txt
  • Reinicie Eclipse y busque Ctrl+ Tpara el tipo ofensivo. Los índices serán reconstruidos.
hoipolloi
fuente
+1, esto funcionó para mí. Anteriormente, también sufría de Eclipse pensando que mi proyecto estaba en 1.5 a pesar de que todas las opciones decían lo contrario, por lo que debe haber sido dañado durante este problema.
Philip Guin
3
Espera, no importa. Después de probar su método, CA funciona exactamente una vez y luego explota nuevamente. Ugh El problema persiste incluso después de recrear todo el espacio de trabajo. Ninguna otra solución aquí parece funcionar ...
Philip Guin
2
+1. Nota: si intenta ayudar con el contenido en una expresión lambda, es posible que su versión de Eclipse no lo admita bien.
Bludwarf el
Funcionó muy bien. ¡Gracias!
Modo
27

En caso de que alguien venga aquí y quiera activar la función de autocompletar, vaya a

Preferences -> Java -> Editor -> Content Assist.

Luego, en la sección Activación automática , complete los activadores de activación automática para Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

ingrese la descripción de la imagen aquí

Hoa Vu
fuente
Esto puede hacer que su eclipse sea muy lento con una gran base de código.
J-ho
19

Para aquellos que ejecutan Xfce + con el complemento IBus activado, puede haber un conflicto de acceso directo de teclado.

Ver más información en mi blog: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

ACTUALIZACIÓN :

como lo sugiere el comentario de @ nhahtdh, agregando más información para responder directamente: el complemento IBus en Xfce usa de forma predeterminada Ctrl+ Spaceacceso directo para cambiar el diseño del teclado. Para cambiarlo, vaya a: Opciones y cámbielo a lo que prefiera.

Peter Butkovic
fuente
3
Incluya las partes esenciales de su blog aquí, en caso de que no esté disponible en el futuro.
nhahtdh
2
Mismo problema en LXDE. Vaya a Preferences-> Keyboard Inputy elimine el Next input methodacceso directo.
Kshitiz Sharma
1
Los mismos problemas aparecen con el entorno de escritorio Cinnamon.
Akkusativobjekt
11

Verifique la biblioteca de su proyecto. Puede ser que haya incluido dos de esos archivos jar en los que está disponible la misma clase o que una clase de código se puede volver a convertir en dos archivos jar. En tal caso, eclipse también deja de ayudar al código, ya que está totalmente confundido.

Una mejor manera de verificar esto es ir al archivo donde la asistencia no funciona y comentar todas las importaciones allí, que agregar importaciones una por una y verificar en cada importación si code-assist está funcionando o no. Puede encontrar fácilmente la clase con referencias duplicadas .

Mona
fuente
9

Ninguno de estos funcionó para mí.

Estaba experimentando este problema en una sola clase en particular. Lo que finalmente funcionó para mí fue eliminar la clase ofensiva y recrearla. Problema resuelto ... ¡misterio no tanto!

Bagazo
fuente
5

Si ha instalado Google Toolbar para IE, es posible que pueda enfrentar el mismo problema. Porque, la barra de herramientas captura el atajo ctrl +Space.

Shashi
fuente
5

Tuve este problema y me gusta @Marc, solo en una clase en particular. Descubrí que necesitaba designar Open With = Java Editor. Como novato en Eclipse, ni siquiera me había dado cuenta de que solo estaba usando un editor de texto sin formato.

En el explorador de paquetes, haga clic derecho en el archivo y elija "Abrir con".

Elroy Flynn
fuente
4

Me enfrenté a este problema y pasé horas tratando de resolver el problema. Intenté seguir los pasos mencionados en las diferentes respuestas anteriores, la solución que encontré está en las mismas líneas que Mona sugirió, pero un poco diferente. Intenté agregar un comentario a la respuesta de Mona, pero no había ninguna opción disponible. El problema con mi eclipse fue que classpath se corrompió de alguna manera y faltaban todos los frascos y proyectos dependientes. después de tomar el último .classpath del repositorio funcionó bien.

Nirmal Mangal
fuente
4

También me enfrento a este problema, pero se resuelve de manera diferente. Los pasos que sigo pueden ser útiles para otros.

  1. Haga clic derecho en el proyecto (en el que está trabajando)
  2. Vaya a Propiedades> Ruta de compilación Java> Biblioteca del sistema JRE
  3. Haga clic en Editar ... a la derecha
  4. Elige el JRE 7
asifaftab87
fuente
4

Una vez que haya verificado su configuración y la finalización todavía no funciona:

  • asegúrese de tener la estructura de directorios correcta.

¿Ves el ícono derecho al lado del archivo ?:

ingrese la descripción de la imagen aquí

Le dirá cómo Eclipse tratará el archivo:

ingrese la descripción de la imagen aquí

Estoy publicando esta respuesta ya que tenía esa historia con el artefacto de la aplicación web Maven. Por defecto, Maven-WebApp no ​​crea una carpeta para las fuentes y puse mi Java en recursos, preguntándome durante 5 minutos qué estaba pasando ... :)

Witold Kaczurba
fuente
3

Compruebe que no filtró muchas opciones dentro de la Ventana> Preferencias> Java> Apariencia> Filtros de tipo

Los elementos de esta lista no aparecerán en la solución rápida, se completarán automáticamente o aparecerán en otros lugares, como el cuadro de diálogo Abrir tipo.

Aaron
fuente
3

Otra solución que funcionó para mí es ir a Java -> Apariencia -> Filtros de tipo y desactivar todosingrese la descripción de la imagen aquí

usuario1889970
fuente
3

Quizás esto ayude a otras personas que se encuentran con el mismo problema.

Mi configuración: antiguo proyecto de Gradle (versión Gradle 2.12) realizado por otra persona, importado utilizando el Asistente de importación de Gradle en STS (Eclipse Oxygen.2 (4.7.2)).

La finalización del código tampoco funcionó (y todavía tengo Js huecos en los archivos Java), pero al menos conseguí que la finalización del código funcionara haciendo:

  • haga clic con el botón derecho en la carpeta del proyecto> Propiedades> Gradle> Configurar ajustes del espacio de trabajo> Java> Editor> Content Assist> Avanzado
  • marque "Propuestas Java en la ventana superior.
  • 2x Aplicar y cerrar
Togepi
fuente
2

En mi caso, Intellisense solo había desaparecido en unas pocas clases en un proyecto. Resultó que esto se debía a una biblioteca faltante en la ruta de compilación (aunque funcionaba anteriormente).

Así que definitivamente verifique todos los errores o problemas en Eclipse e intente encontrar si una biblioteca puede faltar

arnehehe
fuente
2

Me encontré con esto y terminó siendo que estaba abriendo el archivo con el editor de texto y no con el editor de Java.

Quería comentar sobre la respuesta https://stackoverflow.com/users/607470/elroy-flynn , pero el comentario de agregar solo funciona después de obtener una calificación de 50. no estoy seguro WTF que es ...

Gracias Tom

Tom Orsi
fuente
El bloqueo de reputación es básicamente para que las personas tengan razones para obtener más, además de tener más. Como también actúa como una medida de lo involucrado y respetado que eres en la comunidad (es decir, como reputación), obtienes más privilegios a medida que obtienes más reputación. Es posible que desee ver el recorrido para obtener más explicaciones sobre cómo funciona el sitio: stackoverflow.com/tour .
Amndeep7
Esto es realmente solo un comentario, la respuesta que menciona ya cubre el problema del editor de texto. Sin embargo, entiendo si no quieres eliminarlo y perder el karma.
Noumenon
1

Para mí, el problema era un conflicto entre varias versiones de la misma biblioteca. La ayuda de Eclipse estaba usando una versión anterior a Maven.

Tuve que ir al directorio .m2 y eliminar la versión lib no deseada + reiniciar eclipse.

ilinca
fuente
1

Experimento problemas en Eclipse Neon cuando edito un archivo que no pertenece al directorio del proyecto . Cuando copio el mismo archivo al directorio raíz del proyecto, ni siquiera al directorio src, la finalización comienza a funcionar.

Cuando el archivo se abre desde un directorio diferente, solo funciona la finalización de JRE. Eso es por ejemplo: java.completa, pero junit.no lo hace.

Jarekczek
fuente
1

En caso de que alguien llegara a un punto desesperado en el que nada funciona ... Nos ocurrió que el contenido ayuda de alguna manera se redujo, por lo que no se mostró ninguna sugerencia, solo se podía ver "Presione Ctrl + Espacio para no Java ...". Por lo tanto, solo era cuestión de arrastrar la esquina de la ayuda de contenido para ampliar la ventana emergente.

Lo sé, vergonzoso. Espero eso ayude.

Nota: este era un servidor Ubuntu con Xfce4 usando Eclipse Oxygen.

tete
fuente
1

Para aquellos que usan la última versión de eclipse 3-19:

Simplemente me sucedió cuando actualicé de Oxygen a la versión 3-19 eclipse, por lo que supongo que la función de autocompletar no migró correctamente durante el proceso de actualización.

La única solución que funcionó para mí fue crear un nuevo espacio de trabajo de eclipse e importarle los proyectos. Puede llevar unos minutos, pero merece la pena, en comparación con el tiempo dedicado a otras soluciones ...

Bar Naor
fuente
Sí, no puedo explorar los métodos de Java, haga clic en Examinar / abrir declaración no funciona. Y esto sucede con bastante frecuencia, los archivos de clase de Java se han convertido efectivamente en archivos de texto. Así que sigo eliminando el espacio de trabajo e importo el proyecto Maven, de nuevo en acción en un minuto.
signonsridhar
0

Me he encontrado con este problema desde que actualicé a Eclipse 2019-09. Basado en algunas de las sugerencias anteriores, esto es lo que funcionó para mí.

Tuve que ir a Eclipse -> Preferencias -> Java -> Editor -> Content Assist -> Avanzado.

Editor de Java / Asistente de contenido avanzado

Descubrí que si activaba cualquiera de las propuestas de enlace clave, Java Non-Type, Java, Java (Task-Focused) o Java Type, entonces podría usar el autocompletado. Si los encendí todos, entonces no solo el trabajo de autocompletar, sino que obtuve métodos duplicados en la lista. Supongo, pero probablemente usaré las propuestas de tipo Java. Cualquier aclaración de lo que difiere para estos cuatro tipos sería apreciada.

Bill Snee
fuente
0

Ejecutando STS en proyectos Java Spring Boot, esto es lo que funciona para mí:

ingrese la descripción de la imagen aquí

theRiley
fuente