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!