Ich habe gerade einen seltsamen Fehler festgestellt, als ich die JDK-Version eines neuen Projekts von 7u45 auf 8u20 umgestellt habe. Eine harmlose LogManager Erklärung zu Beginn meiner Klasse wird mit dem folgenden Fehler verweigert:Fehler bei der Verwendung von LogManager (l4j2) mit Java 8 (java.lang.reflect.AnnotatedElement kann nicht aufgelöst werden)
The type java.lang.reflect.AnnotatedElement cannot be resolved. It is indirectly referenced from required .class files
Dies ist der Code:
public class Class1 {
private static Logger log = LogManager.getLogger(Class1.class);
...
Eklipse schlägt mich den Build-Pfad zu konfigurieren, aber ich habe keine Idee was zu konfigurieren ist, weil ich das zugrunde liegende Problem dieses Fehlers nicht kenne.
Mit dem JDK mit Version 7 funktioniert alles einwandfrei.
Okay, scheint Logik. Danke! :) – Corsair
Nur der Vollständigkeit halber gilt das Gleiche, wenn die im Compiler-Fehler genannte Klasse [Map.Entry'] ist (http://docs.oracle.com/javase/8/docs/api/java/util/Map) .Entry.html) (wie in vielen Fragen), da diese 'Schnittstelle' jetzt' statische' Methoden hat ... – Holger
Sie müssen Ihre IDE nicht aktualisieren. Sie können auch ein älteres JDK/JRE installieren und angeben, dass Eclipse die ältere Version verwendet (Fenster> Voreinstellungen> Installierte JREs). Z.B. Ich habe C: \ Programme \ Java \ jdk1.7.0_67 \ jre dort angegeben und der Fehler ist verschwunden. – Jim