Подтвердить что ты не робот

Java: проблема неразрешенной компиляции

Каковы возможные причины проблемы java.lang.Error: Unresolved compilation?

Дополнительная информация:

Я видел это после копирования набора обновленных JAR файлов из сборки поверх существующих JAR и перезапуска приложения. JAR создаются с использованием процесса сборки Maven.

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

Чистая перестройка и перераспределение исправили проблему. Может ли эта ошибка указывать на поврежденный JAR?

4b9b3361

Ответ 1

(переписано 2015-07-28)

Поведение Eclipse по умолчанию при компиляции кода с ошибками в нем - это генерация байтового кода, генерирующего исключение, которое вы видите. Это возможно, поскольку Eclipse использует собственный встроенный компилятор вместо javac из JDK, который использует Apache Maven. Если вы используете Eclipse в проекте Maven, с которым вы также работаете с командой командной строки mvn, это может произойти.

Исправление - исправить ошибки и перекомпилировать перед повторным запуском.

Параметр отмечен красным полем этого screendump:

Настройки Eclipse под OS X

Ответ 2

попробуйте очистить проект затмения

Ответ 3

Скомпилированные классы могут быть перекомпилированы из источника с новыми банками.

Попробуйте запустить "mvn clean", а затем перестройте

Ответ 4

вы просто пытаетесь очистить maven командой

mvn clean

и после этого следующая команда

mvn eclipse:clean eclipse:eclipse

и перестройте свой проект....

Ответ 5

У меня была эта ошибка, когда я использовал конфигурацию запуска, у которой был недопустимый путь к классам. В моем случае у меня был проект, который изначально использовал Maven, и, таким образом, в конфигурации запуска был элемент Mpath класса Maven. Позднее я изменил проект на использование Gradle и удалил путь класса Maven из пути к классу проекта, но конфигурация запуска все еще использовала его. Я получил эту ошибку, пытаясь запустить ее. Очистка и восстановление проекта не разрешили эту ошибку. Вместо этого отредактируйте конфигурацию запуска, удалите элемент пути к классу проекта, а затем добавьте проект обратно в пользовательские записи в пути к классам.

Ответ 6

Я получил эту ошибку несколько раз и изо всех сил пытался работать. Наконец, я удалил конфигурацию запуска и снова добавил записи по умолчанию. Он работал красиво.

Ответ 7

Основная часть правильно ответила Торбьёрн Равн Андерсен.

Этот ответ пытается пролить свет на оставшийся вопрос: как может файл класса с ошибками попасть в банку?

Каждая сборка (mvn & javac или eclipse) сигнализирует своим конкретным способом, когда она попадает в ошибку компиляции, и откажется от нее создать Jar файл (или, по крайней мере, предупредить вас). Наиболее вероятной причиной бесшумного получения файлов классов с ошибками в банке является одновременная работа Maven и Eclipse.

Если у вас открыт Eclipse при запуске сборки mvn, вы должны отключить Проект > Автоматически создавать, пока mvn не завершится.