web-dev-qa-db-fra.com

Eclipse: le package déclaré ne correspond pas au package attendu

J'ai un problème pour importer un projet externe. Je vais Fichier -> Importer ... -> Projets existants dans Workspace, choisissez le dossier dans lequel le projet est situé et où tout est importé - mais les noms de package du projet ne semblent pas correspondre à ceux qu'Eclipse attend. Les noms de paquet ont tous un préfixe:

prefix.packagename1
prefix.packagename2

etc.

Mais Eclipse attend

src.prefix1.prefix.packagename1
src.prefix1.prefix.packagename2

etc. parce que le répertoire est src/prefix1/prefix/package1

Je ne veux pas vraiment jouer avec du code externe. Comment puis-je dire à Eclipse d'ignorer le répertoire "src/prefix1"? Ou quoi d'autre puis-je faire?

76
HenryNguyen

Il suffit d'aller dans le chemin de construction et de changer le chemin source en src/prefix1 au lieu de src.

Il peut être plus simple de cliquer avec le bouton droit sur le répertoire src et de sélectionner "Chemin de construction/Supprimer du chemin de construction", puis de rechercher le répertoire src/prefix1, de cliquer dessus avec le bouton droit de la souris et de sélectionner "Chemin de construction/Utiliser comme dossier source".

90
Jon Skeet

Je viens de rencontrer ce problème et, comme la solution de M. Skeet ne fonctionnait pas pour moi, je vais vous expliquer comment j'ai résolu ce problème.

Il se trouve que j'ai ouvert le fichier Java sous "src" avant de le déclarer comme répertoire source.

Après un clic droit sur le répertoire "src" dans Eclipse, sélectionnez "chemin de compilation", puis "Utiliser comme dossier source".

Fermer et rouvrir _ _ le déjà fichier Java ouvert (F5 l'actualisation n'a pas fonctionné).

Le chemin d'accès au fichier Java à partir de "prefix1" s'aligne sur le package dans le fichier (exemple, à partir de la question préfixe1.prefix.packagename2 du demandeur). Cela devrait marcher

Eclipse ne devrait plus se plaindre de 'src'.

57
Kyle Shanafelt

Déplacez les fichiers de votre problème * .Java dans un autre dossier.

Cliquez sur l'élément 'src' et appuyez sur "F5".

Les croix rouges vont disparaître.

Renvoyez vos fichiers * .Java en "chemin du paquet", cliquez sur l'élément "src" et appuyez sur "F5".

Tout devrait bien se passer.

10
Vlad

Si vous avez importé un projet existant, supprimez simplement vos dossiers source, puis ajoutez-les à nouveau pour générer le chemin, puis redémarrez Eclipse. La plupart du temps, Eclipse continuera à afficher l'erreur jusqu'à ce que vous redémarriez.

2
Parveen Yadav

Cela se produit pour moi après que des builds échoués se soient déroulés en dehors de l'IDE. Si le nettoyage de votre espace de travail ne fonctionne pas, essayez: 1) Supprimez tous les projets 2) Fermez et redémarrez STS/Eclipse, 3) Réimportez les projets.

1
Bradley D

Accédez au dossier src du projet et copiez tout le code de celui-ci dans un emplacement temporaire, puis générez le projet. Et maintenant, copiez le code actuel de l’emplacement temporaire dans le projet src. Et relancez la construction. Le problème sera résolu.

Remarque: Ceci est spécifique à Eclipse.

0
Deepak Gupta

J'ai eu le même problème tout à l'heure. Cependant, les premières réponses ne fonctionnent pas pour moi. Je propose une solution: changez le fichier .classpath fichier. Par exemple, vous pouvez définir le chemin du noeud classpathentry comme ceci: chemin = "src/prefix1/Java " ou path =" src/prefix1/resources ". J'espère que cela pourra vous aider.

0
Jack

Supposons que votre projet ait un paquet tel que package name1.name2.name3.name4 (paquet déclaré)

Votre paquet Explorer montre
paquet de niveau supérieur nommé nom1.nom2
sous packages nommés nom3.nom4

Vous aurez des erreurs car Eclipse extrait le nom du package de la structure de répertoires de fichiers sur le disque à partir du point d'importation.

Mon cas était un peu plus complexe, peut-être parce que j'utilisais un lien symbolique vers un dossier situé en dehors de mon espace de travail. 

J'ai d'abord essayé Build Path.Java Build Path.Source Tab.Link Source Button.Parcourir vers le dossier précédant name1 dans votre package.nom de dossier que vous le souhaitez (je pense). Mais eu des problèmes.

Ensuite, j'ai supprimé le dossier du chemin de construction et essayé Fichier> Importer ...> Général> Système de fichiers> cliquez sur Suivant> Depuis le répertoire> Parcourir ... jusqu'au dossier situé au-dessus de nom1> cliquez sur le bouton Avancé> cochez Créer des liens dans l'espace de travail> cliquez sur Terminer bouton.

0
darKoram

Je rencontre parfois ce problème dans Eclipse lors de l'importation d'un projet Android ne disposant pas d'un fichier .classpath. Celui créé par Eclipse n’est pas exactement le même que celui attendu par Android. Mais, les fichiers .classpath d'Android sont généralement tous relatifs, aussi je copie simplement un fichier .classpath correct d'un autre projet sur le mauvais .classpath. J'ai créé une vidéo qui montre comment procéder: https://www.youtube.com/watch?v=IVIhgeahS1Ynto

0
user3649912

La seule chose qui a fonctionné pour moi est de supprimer le projet, puis de le réimporter. Fonctionne comme un charme :)

0
Slim