Heim >Java >javaLernprogramm >Warum kann Eclipse meine XML-Klassen nach dem Wechsel zu JDK 10 nicht finden?
Eclipse stößt auf Probleme beim Auffinden von XML-Klassen nach JDK 10 Build Path Switch
Bei der Arbeit an einem Maven-Projekt in Eclipse stieß ein Benutzer danach auf Schwierigkeiten Ändern des Java Build Path des Projekts auf JDK 10. Insbesondere konnte Eclipse keine XML-bezogenen Klassen mehr finden, z javax.xml.xpath.XPath, org.w3c.dom.Document oder org.xml.sax.SAXException. Interessanterweise betraf das Problem nur XML-Klassen aus der Maven-Abhängigkeit xml-apis-1.4.01.
Obwohl es während des Eclipse-Build-Prozesses nicht möglich war, auf diese Klassen zuzugreifen, wurde ein Maven-Build ohne Fehler ausgeführt. Darüber hinaus ermöglichte die Verwendung von Strg-Linksklick auf eine der angeblich fehlenden Klassen dem Benutzer, sie im Eclipse-Editor zu finden und zu öffnen. Somit schien das Problem auf den Eclipse-Build beschränkt zu sein.
Um die Situation zu beheben, versuchte der Benutzer verschiedene Lösungen, darunter:
Keine dieser Maßnahmen hat das Problem behoben.
Verstehen der Grundursache und Finden Lösungen
Das zugrunde liegende Problem ergibt sich aus der Annahme, dass das Projekt von Java 1.8 migriert Es fehlt eine module-info.java-Datei, was zur Kompilierung innerhalb eines „unbenannten Moduls“ führt. Innerhalb dieses Moduls wertet der Code beobachtbare benannte und unbenannte Module aus, einschließlich „java.xml“ aus der JRE-Systembibliothek. Letzteres bietet Zugriff auf Pakete wie java.xml.xpath.
Gleichzeitig verwendet das Projekt xml-apis.java als Abhängigkeit, das einen alternativen Satz von Paketen mit identischen Namen anbietet (z. B. java. xml.xpath). Da sich beide Paketsätze im unbenannten Modul befinden, kommt es zu Konflikten, wodurch die Anforderung der „eindeutigen Sichtbarkeit“ in Java 1.8 verletzt wird.
Um den Konflikt zu lösen, stehen zwei Lösungen zur Verfügung:
Das obige ist der detaillierte Inhalt vonWarum kann Eclipse meine XML-Klassen nach dem Wechsel zu JDK 10 nicht finden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!