Erreur lors de l'utilisation de LogManager (l4j2) avec Java 8 (java.lang.reflect.AnnotatedElement ne peut pas être résolu)
Je viens de rencontré un étrange erreur lors de la commutation de la version du JDK d'un nouveau Projet de la mine de la 7u45 à 8u20. Un inoffensif LogManager déclaration au début de ma classe est refusé avec le message d'erreur suivant:
Le type java.lang.de réfléchir.AnnotatedElement ne peut pas être résolu. Il est indirectement référencé de besoin .les fichiers de classe
C'est le code:
public class Class1 {
private static Logger log = LogManager.getLogger(Class1.class);
...
Eclipse me propose de configurer le build path, mais je n'ai aucune Idée de ce à configurer car je ne sais pas le problème sous-jacent de l'erreur.
L'aide du JDK avec la version 7, tout fonctionne bien.
source d'informationauteur Corsair
Vous devez vous connecter pour publier un commentaire.
Lors de l'utilisation de JDK 8 et un IDE (ou tout autre outil de traitement de/cadre) avec son propre compilateur, comme Eclipse, vous devez mettre à jour l'outil de une version avec Java 8 prise en charge, même si vous n'êtes pas en utilisant la plus récente de Java 8.
La raison en est que le compilateur doit être en mesure de charger les nouveaux fichiers de classe de JRE afin de compiler votre logiciel qui fait référence à ces classes.
Parfois vous pouvez sortir avec un vieux compilateur lorsqu'il ignore le plus récent numéro de version des fichiers de classe. Mais certains types de dérouter les plus âgés de la classe fichier analyseurs comme ils utilisent de nouvelles fonctionnalités, notamment
AnnotatedElement
qui a maintenantdefault
méthodes, etCarte.Entrée
uninterface
qui a maintenantstatic
méthodes.Il semble que Eclipse ne pas faire une différence entre les références pour lesquelles aucun fichier de classe a pu être trouvé et les fichiers de classe, il n'a pas pu lire en disant “«classname» ne peut pas être résolu”.
La même chose s'applique à l'ensemble des outils et des cadres à l'aide de la CJCE intégré compilateur.
Si cela vous arrive dans l'exécution de Tomcat depuis Eclipse (question a été fermé comme un double et redirige ici), allez dans Préférences → Serveur → Environnements d'Exécution → version de Tomcat → Modifier... et assurez-vous que l'sélectionnés JRE correspond à la version de Tomcat. (Vous devrez peut-être installer un.)
- Je changer de JRE 8 à JRE 7 et redémarrez Eclipse puis il fonctionne très bien.
J'ai été en utilisant Eclipse Helios avec le JRE 8 et de mettre à jour le logiciel de résoudre le problème.
Maintenant, je suis en utilisant Eclipse Mars et fonctionne très bien -> https://eclipse.org/downloads/
Solution 1:
D'essayer de changer le niveau de la source.
Solution 2: