web-dev-qa-db-fra.com

La complétion de code Eclipse / Java ne fonctionne pas

J'ai téléchargé, décompressé et installé Eclipse 3.4.2 avec certains plug-ins (à noter, EPIC, Clearcase, QuantumDB, MisterQ).

À présent, lorsque je modifie des projets Java, la complétion du code ne fonctionne pas. Si je tape String. et appuie sur ctrl+space une fenêtre contextuelle affiche "Aucune proposition par défaut" et la barre d'état en bas indique "Aucune finalisation disponible".

Des idées?

548
Robert Brown

Essayez de restaurer les options par défaut dans 'Windows > Preferences > Java > Editor > Content Assist > Advanced'

Un exemple du type de données que vous voyez dans cet écran de préférence, mais pas nécessairement ce que vous avez actuellement.

Eclipse content assist setting

(De Vadim dans ce article de blog "Duplications d'assistance au contenu dans Eclipse (Mylyn)" :
Si des entrées Mylyn sont en double, décochez les entrées en double qui ne contiennent pas "(Mylyn)" dans leur nom)

Le page d'aide Eclipse définit la liste par défaut à restaurer:

Sélectionnez les types de proposition contenus dans la liste d'assistance de contenu 'par défaut' :

  • Autres Java Propositions,
  • Propositions de modèles SWT,
  • Propositions de modèles,
  • Propositions de type
1157
VonC

J'ajoute une réponse ici au cas où quelqu'un d'autre le trouverait sur Google. Mêmes symptômes; problème différent. Pour moi, les caches de types étaient devenus corrompus.

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

  • Quittez Eclipse
  • Accédez à l'espace de travail/.metadata/.plugins/org.Eclipse.jdt.core.
  • Supprimer * .index et savedIndexNames.txt
  • Redémarrez Eclipse et recherchez Ctrl + T dans Ctrl + T. Les index seront reconstruits.
67
hoipolloi

Si quelqu'un vient ici et veut activer la fonction de saisie semi-automatique, allez à

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

Ensuite, dans la section Activation automatique , renseignez Déclenchement de l'activation automatique pour Java:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ._

enter image description here

22
Hoa Vu

Pour les utilisateurs de Xfce + ayant le plug-in IBus activé, il peut y avoir un conflit de raccourcis clavier.

Voir plus d'informations sur mon blog: http://peter-butkovic.blogspot.de/2013/05/keyboard-shortcut-ctrlspace-caught-in.html

UPDATE:

comme suggéré par le commentaire de @ nhahtdh, en ajoutant quelques informations supplémentaires pour répondre directement: le plug-in IBus de Xfce utilise par défaut Ctrl+Space raccourci pour changer la disposition du clavier. Pour le changer, allez à: Options et changez-le en ce que vous préférez.

18
Peter Butkovic

Vérifiez la lib de votre projet. Il se peut que vous ayez inclus deux fichiers JAR dans lesquels la même classe soit disponible ou qu'une classe du code puisse être référencée dans deux fichiers JAR. Dans ce cas, Eclipse cesse également d’aider le code car il est totalement confus.

Le meilleur moyen de vérifier cela consiste à aller dans le fichier où assist ne fonctionne pas et à commenter toutes les importations, plutôt que d'ajouter les importations une par une et de vérifier à chaque importation si code-assist fonctionne ou non. Vous pouvez facilement trouver la classe avec références dupliquées. .

10
Mona

Aucun de ceux-ci n'a fonctionné pour moi.

Je rencontrais ce problème dans une seule classe en particulier. Ce qui a finalement fonctionné pour moi a été de supprimer la classe incriminée et de la recréer. Problème résolu ... pas tellement mystère!

9
Marc

Si vous avez installé la barre d'outils Google pour IE, vous pouvez peut-être rencontrer le même problème. En effet, la barre d’outils capture le raccourci ctrl + espace.

5
Shashi

Je suis également confronté à ce problème mais il est résolu de manière différente. Les étapes que je suis peuvent être utiles aux autres.

  1. Faites un clic droit sur le projet (celui sur lequel vous travaillez)
  2. Allez dans Propriétés> Java Chemin de construction> Bibliothèque système JRE
  3. Cliquez sur Modifier ... à droite
  4. Choisissez le JRE 7
4
asifaftab87

J'ai fait face à ce problème et j'ai passé des heures à essayer de comprendre le problème. essayé de suivre les étapes mentionnées dans les différentes réponses ci-dessus, la solution que j’ai trouvée va dans le même sens que celui suggéré par Mona, mais légèrement différente. J'ai essayé d'ajouter comme commentaire à la réponse de Mona mais aucune option n'était disponible. Le problème avec mon Eclipse était, classpath a en quelque sorte été corrompu et tous les jars et projets dépendants étaient manquants. après avoir pris le dernier fichier .classpath du référentiel, cela a bien fonctionné.

4
Nirmal Mangal

J'ai eu ce problème et comme @Marc, uniquement sur une classe particulière. J'ai découvert que je devais désigner Open With = Java Editor. En tant que novice Eclipse, je n'avais même pas réalisé que je n'utilisais qu'un éditeur en clair.

Dans l'explorateur de package, cliquez avec le bouton droit sur le fichier et choisissez "Ouvrir avec".

4
Elroy Flynn

Une fois la configuration vérifiée et que l’achèvement ne fonctionne toujours pas:

  • assurez-vous d'avoir la bonne structure de répertoires

Voyez-vous l'icône de droite à côté du fichier?

enter image description here

Il vous dira comment le fichier sera traité par Eclipse:

enter image description here

Je publie cette réponse car j'avais cette histoire avec l'artefact Maven webapp. Par défaut, Maven-WebApp ne crée pas de dossier pour les sources et je mets mon Java dans les ressources, me demandant pendant 5 minutes ce qui se passait ... :)

3
Witold Kaczurba

Peut-être que cela aide d’autres personnes qui rencontrent le même problème.

Ma configuration: ancien projet Gradle (version Gradle 2.12) créé par quelqu'un d'autre et importé à l'aide de Gradle Import Wizard dans STS (Eclipse Oxygen.2 (4.7.2)).

L’achèvement du code n’a pas fonctionné non plus (et j’ai toujours des jauges creuses dans les fichiers Java), mais au moins j’ai obtenu l’achèvement du code comme suit:

  • faites un clic droit sur le dossier du projet> Propriétés> Planète> Configurer les paramètres de l'espace de travail> Java> Éditeur> Assistant de contenu> Avancé.
  • cochez "Propositions Java dans la fenêtre supérieure.
  • 2x appliquer et fermer
3
Togepi

Une autre solution qui a fonctionné pour moi est d’utiliser Java -> Apparence -> Filtres de type et de tout désactiver.enter image description here

2
user1889970

Je me suis heurté à cela et j'ai fini par ouvrir le fichier avec l'éditeur de texte et non avec l'éditeur Java.

Je voulais commenter https://stackoverflow.com/users/607470/elroy-flynn réponse mais l'ajout de commentaire ne fonctionne qu'après avoir obtenu une note de 50? pas sûr que WTF c'est ...

Merci Tom

2
Tom Orsi

Vérifiez que vous n'avez pas filtré de nombreuses options dans Fenêtre> Préférences> Java> Apparence> Filtres de type

Les éléments de cette liste n'apparaîtront pas dans la solution miracle, ne seront pas complétés automatiquement ni à d'autres endroits, comme la boîte de dialogue Type d'ouverture.

2
Aaron

Dans mon cas, Intellisense n'avait disparu que dans quelques classes d'un projet. Il s’est avéré que c’était à cause d’une bibliothèque manquante sur le chemin de construction (même si cela fonctionnait auparavant).

Vérifiez donc toutes les erreurs ou tous les problèmes dans Eclipse et essayez de savoir s’il manque une bibliothèque.

2
arnehehe

Pour moi, le problème était un conflit entre plusieurs versions de la même bibliothèque. L’assistant Eclipse utilisait une version plus ancienne que maven.

Je devais aller dans le répertoire .m2 et supprimer la version de lib indésirable + redémarrer Eclipse.

1
ilinca

Juste au cas où quelqu'un arriverait à un point désespéré où rien ne fonctionnerait ... Il nous est arrivé que l'aide au contenu ait été réduite de manière à ce qu'aucune suggestion ne soit affichée. Seules les options "Appuyez sur Ctrl + Espace pour non-Java ..." sont visibles. Il suffisait donc de faire glisser le coin de l'assistant de contenu pour agrandir la fenêtre contextuelle.

Je sais, embarrassant. J'espère que ça aide.

Remarque: il s’agissait d’un serveur Ubuntu avec Xfce4 utilisant Eclipse Oxygen.

1
tete

Pour ceux qui utilisent la dernière version 3-19 d'Eclipse:

Cela m'est arrivé lors de la mise à niveau de Oxygen à -19 version Eclipse. Je suppose donc que la fonctionnalité de saisie semi-automatique n'a pas migré correctement au cours du processus de mise à niveau.

La seule solution qui a fonctionné pour moi a été de créer un nouvel espace de travail Eclipse et d'y importer le/les projet (s). Cela peut prendre quelques minutes, mais cela en vaut la peine - en comparant le temps consacré à d’autres solutions ...

1
Naor Bar

Je rencontre des problèmes sur Eclipse Neon when modification d’un fichier n’appartenant pas au répertoire du projet. Lorsque je copie le même fichier dans le répertoire racine du projet, pas même dans le répertoire src, l’achèvement commence à fonctionner.

Lorsque le fichier est ouvert à partir d'un répertoire différent, seul l'achèvement pour JRE fonctionne. C'est par exemple: Java. est terminé, mais junit. ne le fait pas.

1
Jarekczek