Maison > Java > javaDidacticiel > Pourquoi mon projet Eclipse Maven ne parvient-il pas à localiser les classes XML après la mise à niveau vers JDK 10 ?

Pourquoi mon projet Eclipse Maven ne parvient-il pas à localiser les classes XML après la mise à niveau vers JDK 10 ?

DDD
Libérer: 2024-12-07 13:51:17
original
208 Les gens l'ont consulté

Why Does My Eclipse Maven Project Fail to Locate XML Classes After Upgrading to 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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal