126 votes

Le paquet déclaré ne correspond pas au paquet attendu ""

J'utilise Eclipse et je n'ai pas utilisé Java depuis un certain temps. Cependant, je peux compiler mon code en ligne de commande sans problème et générer les fichiers nécessaires. .class des dossiers. Dans Eclipse, il se plaint que The declared package "Devices" does not match the expected package "" . Qu'est-ce que cela signifie et comment puis-je le réparer ?

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 .

3 votes

Cette classe est-elle dans le /src/Converters répertoire ?

8 votes

Si vous devez modifier votre question rétrospectivement (ce qui semble inutile, pour être honnête), vous devez être cohérent à ce sujet - vous n'avez pas modifié le premier paragraphe de la question. Vous avez également rendu tous les commentaires bizarres. Pourquoi tout changer, près d'un an et demi plus tard ?

0 votes

Dans mon cas (en utilisant l'extension VSCode Java Project Manager), pour certaines raisons, j'ai dû changer manuellement le package de la classe, ou vous pouvez maintenir le pointeur de la souris sur la ligne rouge sous l'erreur et ensuite cliquer sur "quick fix" pour le faire automatiquement. (Bien sûr, je n'ai aucune idée de la façon dont cela s'est produit parce que le VSCode Java Project Manager gère cela lorsque vous créez un nouveau dossier, tout seul et je n'ai pas pu reproduire ce comportement une fois de plus). Quoi qu'il en soit.

4voto

Je l'ai corrigé en changeant le nom en minuscule et maintenant Eclipse reconnaît le paquet.

0 votes

Cela a fonctionné pour le VSCode aussi, merci. Mais pourquoi exactement cette erreur, et comment cette First_char_capitalization l'a fait fonctionner ? pourriez-vous s'il vous plaît dire ?

2voto

tskuzzy Points 19279

Créez un nouveau paquetage sous votre projet appelé "Devices" et placez-y votre classe. Cela équivaut à placer la classe dans un répertoire appelé "Devices" dans le dossier source de votre projet.

2voto

Marcelo Points 6708

Vous devez avoir la classe dans un dossier Devices .

2voto

Gaurav khurana Points 1201

Ce problème a été résolu en mentionnant le paquet nom

J'ai déplacé mon dossier Test_Steps.java qui était sous paquet stepDefinition

enter image description here

en ajoutant simplement le paquet stepDefinition le problème a été résolu

Ce problème peut donc survenir lorsque vous avez un paquetage et que vous ne l'utilisez pas dans votre fichier de classe.

Le fait de l'ajouter a résolu le problème et l'erreur n'apparaissait plus.

enter image description here

1voto

Adam Matan Points 15690

Assurez-vous que Devices est défini comme un dossier source dans les propriétés du projet.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X