J'utilise Eclipse et je n'ai pas utilisé Java depuis un certain temps. Cependant, je peux très bien compiler mon code sur la ligne de commande et générer les .class
fichiers nécessaires . Dans Eclipse, on s'en plaint The declared package "Devices" does not match the expected package ""
. Qu'est-ce que cela signifie et comment puis-je y remédier?
Exemple de code:
package Devices;
public final class DevFrequency
{
public short messageID;
public double frequency;
public short converterID;
public DevFrequency()
{
}
public DevFrequency(short _messageID,double _frequency,short _converterID)
{
messageID = _messageID;
frequency = _frequency;
converterID = _converterID;
}
}
Le nom de mon projet est DeviceDDS
.
/src/Converters
répertoire?Réponses:
Eclipse s'attend à ce que le package déclaré corresponde à la hiérarchie des répertoires - il s'attend donc à ce que votre fichier Java se trouve dans un répertoire appelé "Devices" sous votre racine source. Pour le moment, il semble que le fichier se trouve directement dans votre racine source. Créez donc le répertoire approprié et déplacez-y le fichier.
Notez que par convention, les packages sont en minuscules et incluent le nom de votre organisation dans l'ordre DNS inverse, par exemple
la source
Essayez de fermer et de rouvrir le fichier.
Il est possible d'obtenir cette erreur dans eclipse lorsqu'il n'y a absolument rien de mal avec l'emplacement du fichier ou la déclaration du package. Essayez cela avant de passer beaucoup de temps à essayer ces autres solutions. Parfois, l'éclipse devient confuse. Cela a fonctionné pour moi à plusieurs reprises. J'attribue l'idée à Joshua Goldberg .
la source
Solution 1: Une solution qui a fonctionné pour moi lorsque cette erreur " Le package déclaré ne correspond pas au package attendu " s'est produite pour un projet que j'ai extrait de eclipse CVS:
1.Cliquez avec le bouton droit sur le projet dans la barre de navigation et cliquez sur «Supprimer»
2.Assurez-vous que l'option « Supprimer le contenu du projet sur le disque » n'est PAS cochée, puis cliquez sur OK.
3.Maintenant, une fois le projet supprimé, allez dans Fichier -> Importer -> Général -> Projets existants dans l'espace de travail
4.Sélectionnez votre espace de travail dans la liste des répertoires et cochez la case à côté du nom de votre projet. Cliquez sur ' Terminer '
Solution 2: Encore une fois, j'ai eu cette erreur avec le message suivant
Erreurs de construction Eclipse - java.lang.Object ne peut pas être résolu J'ai dû suivre une autre mention d'itinéraire ici et l'erreur a disparu.
En attendant, la solution consiste à supprimer la bibliothèque système JRE du projet, puis à la rajouter. Voici les étapes:
Espérons que l'erreur sera résolue ...
la source
J'ai résolu le problème en suivant ces étapes:
Sélectionnez le projet - Clic droit - chemin de construction java.
Dans l'onglet source - vous changez le
src
ensrc/main/java
.Eclipse réorganisera tout le projet.
la source
J'ai eu ce problème - les autres classes de mon package allaient bien, mais une classe avait l'erreur. Il n'y avait rien de mal avec la déclaration du package.
Je l'ai corrigé en faisant
refactor->move
et déplacé temporairement la classe vers un autre package, puis derefactor->move
nouveau vers le package d'origine.la source
Vous devez avoir la classe dans un dossier
Devices
.la source
Créez un nouveau package sous votre projet appelé "Appareils" et placez-y votre classe. Cela équivaut au placement de la classe dans un répertoire appelé «Périphériques» dans le dossier source de votre projet.
la source
Assurez-vous qu'il
Devices
est défini comme dossier source dans les propriétés du projet.la source
J'ai eu le même genre d'erreur mais mon colis était absolument correct. Lorsque je viens de fermer et d'ouvrir mon éditeur, l'erreur disparaît. J'espère que cela pourrait aider dans certains scénarios.
la source
J'ai corrigé ce problème en supprimant un attribut "excluant" pour ce package dans mon
.classpath
fichier. Supprimez l'attribut, pas la balise entière, ou "src / java" cessera d'être un dossier source.<classpathentry excluding="com/myproject/mypackage/mysubpackage/" kind="src" path="src/java"/>
la source
Ce problème a été résolu en mentionnant le nom du package
J'ai déplacé mon fichier Test_Steps.java qui était sous le package stepDefinition
en ajoutant simplement le package stepDefinition le problème a été résolu
Ce problème peut donc se produire lorsque vous disposez d'un package et que vous n'utilisez pas dans votre fichier de classe.
L'ajouter a résolu le problème et l'erreur n'apparaissait plus.
la source
Assurez-vous que vous avez créé un package correct.Vous pourriez avoir une chance de créer un dossier au lieu d'un package
la source
Créez le répertoire [your.project.name] dans le répertoire racine de l'espace de travail de votre projet.
Copiez * .java de "src" dans ce répertoire.
Fermez et rouvrez le projet.
la source
Cela m'est arrivé lorsque je vérifiais un projet à partir d'un référentiel svn dans eclipse. Il y avait des fichiers jar dans mon dossier .m2 qu'éclipse ne regardait pas. Pour résoudre le problème que j'ai fait:
cliquez avec le bouton droit sur le dossier du projet Configurer> Convertir en projet Maven
et cela a résolu le problème.
la source
Il y a un million de réponses, mais en voici une autre: copiez les fichiers dans un nouveau paquet, supprimez l'ancien paquet et renommez le nouveau paquet avec le nom de l'ancien paquet.
la source
Assurez-vous que vous n'utilisez pas le package par défaut. Créez un nouveau package avec le nom 'devices' et copiez ce code à l'intérieur et utilisez.
la source
J'ai eu ce genre de situations lorsque j'ai copié des classes à partir d'autres packages / projets.
Menu-> Projet-> Nettoyer aide généralement.
la source
Dans mon cas, j'ai sélectionné le marqueur d'erreur dans l'onglet Problèmes et je l'ai supprimé car la méthode principale du fichier Java était exécutée correctement. C'est un problème dans Eclipse Neon avec la multitude de plugins qu'il a installés.
la source
J'ai également rencontré ce problème lorsque j'avais importé un projet existant vers eclipse. C'était un projet gradle, mais lors de l'importation, je l'ai importé en tant que projet normal en cliquant sur Général-> Projets existants dans l'espace de travail. Pour résoudre le problème, j'ai ajouté la nature Gradle au projet en :::: Cliquez avec le bouton droit sur le dossier Projet -> Configurer-> Ajouter Gradle Nature
la source
J'utilisais Spring Tool Suite 4. Je n'ai pas réussi à résoudre le problème. La structure du répertoire était conforme au nom du package.
la source
J'ai eu le même problème avec un projet maven dans Eclipse IDE. J'ai pu le résoudre en remplaçant le fichier .classpath par le format correct. Après le remplacement, fermez et ouvrez le projet.
Exemple de fichier .classpath
<?xml version="1.0" encoding="UTF-8"?> <classpath> <classpathentry kind="src" output="target/classes" path="src/main/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/resources"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry excluding="**" kind="src" output="target/classes" path="src/main/webapp"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="src" output="target/test-classes" path="src/test/java"> <attributes> <attribute name="optional" value="true"/> <attribute name="maven.pomderived" value="true"/> <attribute name="test" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="con" path="org.eclipse.m2e.MAVEN2_CLASSPATH_CONTAINER"> <attributes> <attribute name="maven.pomderived" value="true"/> </attributes> </classpathentry> <classpathentry kind="output" path="target/classes"/> </classpath>
la source