Eclipse Build Path-Problem mit XML-Klassen nach der Migration auf JDK 10
Bei der Migration eines Maven-Projekts von Java 8 auf JDK 10, Eclipse-Benutzer Möglicherweise tritt ein Build-Fehler bei Klassen wie javax.xml.xpath, org.w3c.dom.Document und auf org.xml.sax.SAXException. Dieses Problem tritt insbesondere auf, wenn der Java Build Path des Projekts auf JDK 10 umgestellt wird.
Ursache
Das Problem ergibt sich aus der Tatsache, dass dem Projekt Modulinformationen fehlen. Java-Datei. Dieses Setup führt dazu, dass der Code im „unbenannten Modul“ kompiliert wird. Das unbenannte Modul kann Pakete von allen beobachtbaren Modulen laden und umfasst in diesem Fall Pakete wie java.xml aus der Java Runtime Environment und xml-apis aus der Maven-Abhängigkeit.
Regelverletzung
Diese Situation verstößt gegen die Java Language Specification (JLS) §7.4.3, die eine eindeutige Sichtbarkeit für qualifizierte Typnamen erfordert. In diesem Fall stellen die Pakete von java.xml und xml-apis widersprüchliche Definitionen für java.xml.xpath und verwandte Klassen bereit.
Lösungen
1 . Fügen Sie eine module-info.java-Datei hinzu
Implementieren Sie eine module-info.java-Datei und geben Sie die erforderlichen Module an, entweder erfordert java.xml; oder erfordert xml.apis;, um das Sichtbarkeitsproblem zu beheben.
2. Schließen Sie java.xml von den beobachtbaren Modulen aus
Vermeiden Sie Konflikte, indem Sie java.xml von der Liste der beobachtbaren Module ausschließen. Dies kann über das Dialogfeld „Modularitätsdetails“ in Eclipse erreicht werden.
Implikationen und Schlussfolgerung
Während Javac den fehlerhaften Code möglicherweise nicht ablehnt, ist er laut der JLS. Die Eclipse-Fehlermeldung wurde seitdem verbessert, um einen genaueren Hinweis auf das zugrunde liegende Problem zu geben. Entwicklern wird empfohlen, sich an die Modularitätsrichtlinien von Java zu halten und eine eindeutige Sichtbarkeit ihrer Module sicherzustellen, um solche Build-Fehler zu verhindern.
Das obige ist der detaillierte Inhalt vonWarum erhalte ich nach der Migration auf JDK 10 Eclipse-Build-Path-Fehler mit XML-Klassen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!