Ошибка при использовании LogManager (l4j2) с Java 8 (java.lang.reflect.AnnotatedElement не может быть разрешена)

Я просто столкнулся с странной ошибкой при переключении версии JDK нового проекта Myu с 7u45 до 8u20. Отрицательное объявление LogManager в начале моего classа отклоняется со следующей ошибкой:

Тип java.lang.reflect.AnnotatedElement не может быть разрешен. Это косвенно ссылается на требуемые файлы .class

Это код:

public class Class1 { private static Logger log = LogManager.getLogger(Class1.class); ... 

Eclipse предлагает мне настроить путь сборки, но у меня нет идеи, что настраивать, потому что я не знаю основной проблемы этой ошибки.

Используя JDK с версией 7, все работает нормально.

    При использовании JDK 8 и IDE (или любого другого инструмента / механизма обработки кода) со своим собственным компилятором, например Eclipse, вам необходимо обновить инструмент до версии с поддержкой Java 8, даже если вы не используете новые функции Java 8 ,

    Причина в том, что компилятор должен иметь возможность загружать новые файлы classов JRE, чтобы скомпилировать ваше программное обеспечение, которое ссылается на эти classы.

    Иногда вы можете уйти со старым компилятором, когда он игнорирует более новый номер версии файлов classов. Но некоторые типы будут путать старые синтаксические анализаторы classов, поскольку они используют новые функции, в частности AnnotatedElement , которые теперь имеют методы по default , и Map.Entry , interface который теперь имеет static методы.

    Похоже, что Eclipse не делает различий между ссылками, для которых не может быть найден файл classа, и файлы classов, которые он не смог прочитать, когда « « classname » не может быть разрешено».

    То же самое относится ко всем инструментам и фреймворкам с использованием ECJ в качестве встроенного компилятора.

    Если это происходит с вами в Tomcat, запущенном внутри Eclipse ( вопрос был закрыт как дубликат и перенаправляет здесь), перейдите в «Настройки» → «Сервер» → «Среда выполнения» → версия Tomcat → «Изменить» … и убедитесь, что выбранная JRE соответствует версии Tomcat. (Возможно, вам нужно установить его.)

    Я перехожу из JRE 8 в JRE 7 и перезапускает Eclipse, тогда он отлично работает.

    Я использовал Eclipse Helios с JRE 8, и обновление программного обеспечения решило проблему.

    Теперь я использую Eclipse Mars и отлично работает -> https://eclipse.org/downloads/

    Решение 1:

    Попробуйте изменить исходный уровень.

    1. Перейдите в Project> Preferences> Java Compiler.
    2. Включить специальные настройки проекта
    3. Установите уровень соответствия компилятора равным 1.4 или ниже.
    4. Перезапуск

    Решение 2:

    1. Создайте новое рабочее пространство.
    2. Скопируйте файлы проекта в новое рабочее пространство.
    3. Импортируйте проект в eclipse и перестройте.
    Давайте будем гением компьютера.