Heim >Java >javaLernprogramm >Warum kann mein Eclipse-Maven-Projekt nach dem Upgrade auf JDK 10 keine XML-Klassen finden?

Warum kann mein Eclipse-Maven-Projekt nach dem Upgrade auf JDK 10 keine XML-Klassen finden?

DDD
DDDOriginal
2024-12-07 13:51:17205Durchsuche

Why Does My Eclipse Maven Project Fail to Locate XML Classes After Upgrading to JDK 10?

Eclipse-Build-Fehler: Auffinden von XML-Klassen nach JDK 10-Upgrade

Mehrere Benutzer sind auf ein verwirrendes Problem gestoßen, nachdem sie den Java-Build-Pfad für ihre geändert haben Maven-Projekt auf JDK 10. Eclipse-Builds können keine Klassen finden, die sich auf die XML-Verarbeitung beziehen, z javax.xml.xpath.XPath und org.w3c.dom.Document. Interessanterweise läuft ein Maven-Build von Eclipse ohne Fehler.

Grundursache: Modulkonflikt

Die Grundursache für dieses Problem liegt im Fehlen einer Modulinformation im Projekt .java-Datei. Ohne diese Datei befindet sich das Projekt im „unbenannten Modul“ und liest alle beobachtbaren benannten und unbenannten Module, einschließlich „java.xml“ aus der JRE und „xml.apis“ aus dem projekteigenen Klassenpfad.

Eindeutige Sichtbarkeitsanforderung

Diese Situation verstößt gegen die „eindeutige Sichtbarkeit“-Anforderung der Java-Sprachspezifikation. Jeder qualifizierte Typname muss ein eindeutig sichtbares Paket haben. Der Konflikt entsteht jedoch, weil sowohl „java.xml“ als auch „xml.apis“ Pakete mit denselben Namen beisteuern (z. B. java.xml.xpath).

Potenzielle Lösungen

Um dieses Problem zu beheben, ziehen Sie die folgenden Lösungen in Betracht:

1. Fügen Sie eine module-info.java-Datei hinzu

Mit dieser Datei können Sie steuern, welche Module das Projekt liest. Durch Angabe erfordert java.xml; oder erfordert xml.apis;, Sie können die Abhängigkeitsbeziehungen explizit definieren und den Konflikt vermeiden.

2. Vermeiden Sie den Konflikt in Eclipse

Ohne das Hinzufügen einer module-info.java-Datei können Sie den Konflikt in Eclipse dennoch verhindern, indem Sie das Dialogfeld „Modularitätsdetails“ verwenden. Verschieben Sie alle Module außer java.base nach links („Verfügbare Module“) und fügen Sie alle erforderlichen Module selektiv erneut hinzu.

Trotz dieser Lösungen bleibt die Eclipse-Fehlermeldung ungenau und kann das eigentliche Problem nicht genau bestimmen . An der Nachricht wurden Verbesserungen vorgenommen, aber das zugrunde liegende Problem besteht weiterhin.

Das obige ist der detaillierte Inhalt vonWarum kann mein Eclipse-Maven-Projekt nach dem Upgrade auf JDK 10 keine XML-Klassen finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn