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.

0voto

t-prisar Points 801

J'utilisais Spring Tool Suite 4. Je n'arrive pas à comprendre le problème. La structure du répertoire était conforme au nom du paquet.

Mais nettoyer le projet m'a aidé.

0voto

gihan Points 1790

J'ai eu le même problème avec un projet maven dans l'IDE Eclipse. 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>

0voto

Larry Cable Points 96

Vous pouvez vérifier le chemin de construction de Java dans les propriétés du projet. Si le répertoire (chemin) des sources n'est pas correctement configuré, cette erreur se produira pour toutes les classes qu'il contient.

Donc le chemin doit spécifier le répertoire 'Root' (contenant) dans lequel les sources du paquet existent ...

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