Java: нерешенная проблема компиляции - PullRequest
62 голосов
/ 14 июля 2009

Каковы возможные причины "java.lang.Error: Неразрешенная проблема компиляции"?

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

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

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

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

Ответы [ 8 ]

60 голосов
/ 14 июля 2009

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

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

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

Настройка помечена красной рамкой в ​​этом скриншоте:

Eclipse Preferences under OS X

14 голосов
/ 16 апреля 2012

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

6 голосов
/ 18 августа 2010

Ваши скомпилированные классы, возможно, придется перекомпилировать из исходного кода с новыми jar-файлами.

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

4 голосов
/ 02 сентября 2013

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

mvn clean

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

mvn eclipse:clean eclipse:eclipse

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

1 голос
/ 02 мая 2015

На главную часть правильно ответил Турбьерн Равн Андерсен.

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

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

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

1 голос
/ 30 апреля 2015

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

1 голос
/ 24 марта 2015

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

0 голосов
/ 28 декабря 2017

Убедитесь, что вы удалили недоступные библиотеки (файлы JAR) из пути сборки

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...