Ich benutze Eclipse und habe Java seit einiger Zeit nicht mehr benutzt. Ich kann meinen Code jedoch problemlos über die Befehlszeile kompilieren und die erforderlichen .class
Dateien generieren . In Eclipse wird das beanstandet The declared package "Devices" does not match the expected package ""
. Was bedeutet das und wie kann ich das beheben?
Beispielcode:
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;
}
}
Der Name meines Projekts ist DeviceDDS
.
/src/Converters
Verzeichnis?Antworten:
Eclipse erwartet, dass das deklarierte Paket mit der Verzeichnishierarchie übereinstimmt. Daher wird erwartet, dass sich Ihre Java-Datei in einem Verzeichnis mit dem Namen "Geräte" unter Ihrem Quellstamm befindet. Im Moment sieht es so aus, als ob sich die Datei direkt in Ihrem Quellstamm befindet. Erstellen Sie also das entsprechende Verzeichnis und verschieben Sie die Datei dort hinein.
Beachten Sie, dass Pakete herkömmlicherweise in Kleinbuchstaben geschrieben sind und Ihren Organisationsnamen in umgekehrter DNS-Reihenfolge enthalten, z
quelle
Versuchen Sie, die Datei zu schließen und erneut zu öffnen.
Es ist möglich, diesen Fehler in Eclipse zu erhalten, wenn am Dateispeicherort oder an der Paketdeklaration absolut nichts falsch ist. Versuchen Sie dies, bevor Sie viel Zeit damit verbringen, diese anderen Lösungen auszuprobieren. Manchmal wird die Sonnenfinsternis einfach verwirrt. Es hat bei mir mehrmals funktioniert. Ich gutzuschreiben die Idee zu Joshua Goldberg .
quelle
Lösung 1: Eine Lösung, die bei mir funktioniert hat, als der Fehler " Das deklarierte Paket stimmt nicht mit dem erwarteten Paket überein" für ein Projekt aufgetreten ist, das ich aus Eclipse CVS ausgecheckt habe:
1.Right klicken Sie auf das Projekt in der Navigationsleiste und klicken Sie auf ‚Löschen‘
2.Make sicher ‚ Projekt löschen Inhalt auf der Festplatte ‘ Option wird nicht geprüft, und auf OK klicken.
3. Gehen Sie nun nach dem Löschen des Projekts zu Datei -> Importieren -> Allgemein -> Vorhandene Projekte in den Arbeitsbereich.
4. Wählen Sie Ihren Arbeitsbereich aus der Verzeichnisliste aus und aktivieren Sie das Kontrollkästchen neben Ihrem Projektnamen. Klicken Sie auf " Fertig stellen ".
Lösung 2: Ich habe diesen Fehler erneut mit der folgenden Meldung erhalten
Eclipse-Build-Fehler - java.lang.Object kann nicht behoben werden Ich musste einer anderen hier erwähnten Route folgen und der Fehler verschwand.
In der Zwischenzeit besteht die Problemumgehung darin, die JRE-Systembibliothek aus dem Projekt zu entfernen und sie dann wieder hinzuzufügen. Hier sind die Schritte:
Hoffentlich wird der Fehler behoben ...
quelle
Ich hatte dieses Problem - die anderen Klassen in meinem Paket waren in Ordnung, aber eine Klasse hatte den Fehler dagegen. An der Paketdeklaration war nichts auszusetzen.
Ich habe es dadurch behoben
refactor->move
und die Klasse vorübergehend in ein anderes Paket verschoben, dannrefactor->move
zurück zum ursprünglichen Paket.quelle
Ich habe das Problem folgendermaßen gelöst:
Wählen Sie das Projekt aus - Rechtsklick - Java-Erstellungspfad.
In der Registerkarte Quelle ändern Sie die
src
insrc/main/java
.Eclipse ordnet das gesamte Projekt neu.
quelle
Sie müssen die Klasse in einem Ordner haben
Devices
.quelle
Erstellen Sie unter Ihrem Projekt ein neues Paket mit dem Namen "Geräte" und platzieren Sie Ihre Klasse darin. Dies entspricht der Klasse, die in einem Verzeichnis namens "Geräte" in Ihrem Projektquellordner abgelegt wird.
quelle
Stellen Sie sicher, dass dies
Devices
in den Projekteigenschaften als Quellordner definiert ist.quelle
Ich habe die gleiche Art von Fehler erhalten, aber mein Paket war absolut korrekt. Wenn ich gerade meinen Editor geschlossen und geöffnet habe, verschwindet der Fehler. Hoffe, dies könnte in einigen Szenarien helfen.
quelle
Ich habe dies behoben, indem ich ein "Ausschluss" -Attribut für dieses Paket in meiner
.classpath
Datei entfernt habe. Entfernen Sie das Attribut, nicht das gesamte Tag, oder "src / java" ist kein Quellordner mehr.quelle
Stellen Sie sicher, dass Sie ein korrektes Paket erstellt haben. Möglicherweise haben Sie die Möglichkeit, einen Ordner anstelle eines Pakets zu erstellen
quelle
Erstellen Sie das Verzeichnis [Ihr.Projektname] im Arbeitsbereich-Stammverzeichnis Ihres Projekts.
Kopieren Sie * .java von "src" in dieses Verzeichnis.
Projekt schließen und erneut öffnen.
quelle
Dies passierte mir, als ich ein Projekt aus einem SVN-Repository in Eclipse auscheckte. In meinem .m2-Ordner befanden sich JAR-Dateien, die Eclipse nicht betrachtete. So beheben Sie das Problem:
Klicken Sie mit der rechten Maustaste auf den Projektordner. Konfigurieren> In Maven-Projekt konvertieren
und das löste das Problem.
quelle
Es gibt eine Million Antworten, aber hier ist eine andere: Kopieren Sie die Dateien in ein neues Paket, löschen Sie das alte Paket und benennen Sie das neue Paket in den Namen des alten Pakets um.
quelle
Stellen Sie sicher, dass Sie kein Standardpaket verwenden. Erstellen Sie ein neues Paket mit dem Namen "Geräte", kopieren Sie diesen Code und verwenden Sie ihn.
quelle
Ich hatte diese Art von Situationen, als ich Klassen aus anderen Paketen / Projekten kopierte.
Menü-> Projekt-> Reinigen hilft normalerweise.
quelle
In meinem Fall habe ich die Fehlermarkierung auf der Registerkarte Probleme ausgewählt und gelöscht, da die Hauptmethode der Java-Datei korrekt ausgeführt wurde. Das ist ein Fehler in Eclipse Neon mit der Vielzahl der installierten Plugins.
quelle
Ich war auch mit diesem Problem konfrontiert, als ich ein vorhandenes Projekt in Eclipse importiert hatte. Es war ein Gradle-Projekt, aber während des Imports habe ich es als reguläres Projekt importiert, indem ich auf Allgemein-> Vorhandene Projekte in den Arbeitsbereich geklickt habe. Um das Problem zu beheben, habe ich Gradle nature zum Projekt hinzugefügt, indem ich :::: mit der rechten Maustaste auf Projektordner -> Konfigurieren-> Gradle Nature hinzufüge klicke
quelle
Ich habe Spring Tool Suite 4 verwendet. Ich konnte das Problem nicht herausfinden. Die Verzeichnisstruktur entsprach dem Paketnamen.
quelle
Dieses Problem wurde durch die Erwähnung der beschlossene Paket Namen
Ich habe meine Datei Test_Steps.java verschoben, die sich unter dem Paket stepDefinition befand
Durch einfaches Hinzufügen des Pakets stepDefinition wurde das Problem behoben
Dieses Problem kann also auftreten, wenn Sie ein Paket haben und es nicht in Ihrer Klassendatei verwenden.
Durch Hinzufügen wurde das Problem behoben und der Fehler wurde nicht mehr angezeigt.
quelle