Heim > Java > javaLernprogramm > Warum wirft Java 8 „Der Typ java.lang.reflect.AnnotatedElement kann nicht aufgelöst werden' mit LogManager in Eclipse aus?

Warum wirft Java 8 „Der Typ java.lang.reflect.AnnotatedElement kann nicht aufgelöst werden' mit LogManager in Eclipse aus?

Mary-Kate Olsen
Freigeben: 2024-11-15 12:33:02
Original
634 Leute haben es durchsucht

Why Does Java 8 Throw

Klassenpfadverwirrung: java.lang.reflect.AnnotatedElement-Fehler mit LogManager in Java 8 unter Verwendung von Eclipse

Beim Übergang von Java 7u45 zu Java 8u20 , können Entwickler bei der Verwendung der LogManager-Klasse auf einen verwirrenden Fehler stoßen. Eine scheinbar harmlose Deklaration des privaten statischen Logger log = LogManager.getLogger(Class1.class) löst einen Fehler aus: „Der Typ java.lang.reflect.AnnotatedElement kann nicht aufgelöst werden. Er wird indirekt von den erforderlichen .class-Dateien referenziert.“

Eclipse fordert Benutzer auf, den Build-Pfad zu konfigurieren, sodass sie sich über die Grundursache des Problems nicht sicher sind. Dieser Fehler tritt aufgrund der zugrunde liegenden Java 8 JDK-Versionsänderung auf. Wenn Sie mit JDK 8 und einer IDE arbeiten, die seinen Compiler verwendet (z. B. Eclipse), ist es wichtig, die IDE auf eine Version zu aktualisieren, die Java 8 unterstützt.

Diese Anforderung ergibt sich aus der Tatsache, dass der Compiler geladen werden muss die neuesten Klassendateien aus der JRE, um Software zu kompilieren, die auf diese Klassen verweist. Während ältere Compiler manchmal die aktualisierten Versionsnummern der Klassendateien übersehen, können sie bei bestimmten Typen verwechselt werden. AnnotatedElement beispielsweise enthält jetzt Standardmethoden, während Map.Entry eine Schnittstelle mit hinzugefügten statischen Methoden ist.

Die Fehlermeldung von Eclipse „«Klassenname» kann nicht aufgelöst werden“ unterscheidet nicht zwischen Fällen, in denen Klassendateien vorhanden sind nicht gefunden werden können und solche, bei denen der Compiler Probleme beim Lesen hat. Ähnliche Probleme können bei der Verwendung von Tools und Frameworks auftreten, die den ECJ-Compiler integrieren.

Das obige ist der detaillierte Inhalt vonWarum wirft Java 8 „Der Typ java.lang.reflect.AnnotatedElement kann nicht aufgelöst werden' mit LogManager in Eclipse aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage