Maison >Java >javaDidacticiel >Pourquoi mon projet Eclipse Maven ne parvient-il pas à localiser les classes XML après la mise à niveau vers JDK 10 ?
Erreur de construction Eclipse : localisation des classes XML après la mise à niveau du JDK 10
Plusieurs utilisateurs ont rencontré un problème déroutant après avoir changé le chemin de construction Java pour leur Projet Maven vers JDK 10. Les builds Eclipse ne parviennent pas à localiser les classes liées au traitement XML, telles que javax.xml.xpath.XPath et org.w3c.dom.Document. Curieusement, une version Maven d'Eclipse s'exécute sans erreur.
Cause première : conflit de modules
La cause première de ce problème réside dans le manque d'informations sur le module dans le projet. Fichier .java. Sans ce fichier, le projet réside dans le "module sans nom" et lit tous les modules nommés et sans nom observables, y compris "java.xml" du JRE et "xml.apis" du propre chemin de classe du projet.
Exigence de visibilité unique
Cette situation viole l'exigence de « visibilité unique » de la spécification du langage Java. Chaque nom de type qualifié doit avoir un package visible de manière unique. Cependant, le conflit survient parce que "java.xml" et "xml.apis" contribuent tous deux à des packages portant les mêmes noms (par exemple, java.xml.xpath).
Solutions potentielles
Pour résoudre ce problème, envisagez les solutions suivantes :
1. Ajoutez un fichier module-info.java
Ce fichier vous permet de contrôler les modules lus par le projet. En spécifiant require java.xml; ou nécessite xml.apis ;, vous pouvez définir explicitement les relations de dépendance et éviter le conflit.
2. Évitez le conflit dans Eclipse
Sans ajouter de fichier module-info.java, vous pouvez toujours empêcher le conflit dans Eclipse en utilisant la boîte de dialogue « Détails de la modularité ». Déplacez tous les modules à l'exception de java.base vers la gauche (« Modules disponibles ») et ajoutez à nouveau tous les modules nécessaires de manière sélective.
Malgré ces solutions, le message d'erreur Eclipse reste inexact, ne parvenant pas à identifier le problème réel. . Des améliorations ont été apportées au message, mais le problème sous-jacent persiste.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!