Ошибка затмения: «Не удается разрешить импорт XXX»

135

Я пытаюсь работать с Hibernate в Eclipse. Я создаю новый простой проект, и я также скачал проект колледжа через CVS. Оба не работают, в то время как на Eclipse моего коллеги работают. Проблема в том, что для каждого импорта класса Hibernate Eclipse говорит:

The import org.hibernate cannot be resolved

Но все банки Hibernate находятся в пути сборки, то есть:

antlr-2.7.6.jar
cglib-2.2.jar
commons-collections-3.1.jar
dom4j-1.6.1.jar
hibernate3.jar
hibernate-jpa-2.0-api-1.0.0.Final.jar
javassist-3.12.0.GA.jar
jta-1.1.jar
slf4j-api-1.6.1.jar
голубоватый
источник
1
как вы добавили эти файлы в свой путь сборки?
Джигар Джоши
3
по свойствам> Путь сборки Java> Библиотеки> Добавление внешних JAR-файлов
голубоватое
stackoverflow.com/a/16919015/653211
Эшвин Кришнамурти
1
Если это сработало, а сейчас - нет, посмотрите ответ @dogbane ниже ...
Shanimal
проверьте, есть ли место в вашей папке импорта. если есть пробел, удалите пробел и импортируйте проекты в затмение.
Щин Чан

Ответы:

283

Попробуйте очистить свой проект, перейдя в следующий пункт меню:

Project > Clean...

Если это не сработает, попробуйте удалить файлы jar из пути сборки и добавить их снова.

кендырь
источник
5
может быть проблемой JRE. Попробуйте выбрать «альтернативный JRE» в свойствах проекта.
Dogbane
10
Чистый тоже работал на меня. Что именно происходит (все внезапно развалилось) и как Clean помогает?
Бегущий по
1
Это решило проблему и для меня; это не проект hibernate, а проект libGdx , который вызывает мой импорт java, а не jars. То же самое интересно @SabreRunner, а также: где-то есть ошибка в инструментах среды?
Зак
3
У меня тоже сработало. Это очень расстраивает, когда контекстное меню помощи находит ваш класс, и рука печатает тот же импорт, что и те, которые отмечены как «невозможно решить», и ошибок нет ...
Shanimal
1
Этот способ НЕ помогает в моем случае. Моя версия Eclipse: Neon.3 Release (4.6.3)
Timothy.Li
27

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

Это все еще (2019-03) старая ошибка (2010) Eclipse, которую можно устранить, внеся незначительное изменение в настройки проекта.

Параметр, который я выбрал для изменения, был следующий: «Проект»> «Свойства»> «Путь сборки Java»> «Порядок и экспорт»> сделать бессмысленное изменение порядка> «Применить».

Смена заказа обратно не регресс к проблеме. Простое прикосновение к файлу может также решить проблему (в следующий раз я проверю касание).

user1133275
источник
1
Файл> Свойства Необходимо изменить на Проект> Свойства.
Timothy.Li
Этот способ НЕ помогает в моем случае. Моя версия Eclipse: Neon.3 Release (4.6.3)
Timothy.Li
Для меня системная библиотека JRE должна была быть выше Maven Dependencies на вкладке «Путь сборки и порядок экспорта».
Энтони Хейворд
2
Этой ошибке сейчас как минимум 9 лет.
user1133275
Это все еще там, ноябрь 2019 года. Шиш.
Tullochgorum
22

Очистить проект. И еще раз проверьте, что банки действительно находятся на пути сборки (без ошибок). Также убедитесь, что в представлении «Проблемы» ничего нет.

Bozho
источник
Я уже пробовал это более одного раза: с отдельными банками, внутри библиотеки, ... Кажется странной ошибкой!
голубоватое
1
у вас есть что-нибудь в представлении «Проблемы»?
Божо
Только проблемы, о которых я говорил, и предупреждения типа «Сериализуемый класс Azienda не объявляет статическое окончательное поле serialVersionUID типа long».
голубоватое
18

Я нашел проблему. Это был hibernate3.jar. Я не знаю, почему он не был хорошо извлечен из .zip, возможно, поврежден . Хороший способ проверить, повреждены ли файлы jar, - это перемещаться по их древовидной структуре в «Project Explorer» в Eclipse: если вы не можете развернуть узел jar, возможно, он поврежден. Я видел, что с поврежденными пакетами часто бывает, когда вы перетаскиваете их в «Project Explorer». Может быть, лучше перенести и скопировать их в среде ОС! Спасибо вам всем.

голубоватый
источник
17

Если это проект Maven, также нажмите Maven >> Обновить проект ... (F5)

Обновление проекта Maven

albertoiNET
источник
Если вы импортируете проект maven как «проект Java», то эта проблема возникает. Преобразуйте проект в maven и обновите, как вы сказали, тогда проблема исчезла.
Кодманьяга
8

Я решил это, удалив проект (не удаляя на диске) и импортировав его снова.

SoldierShen
источник
8
  1. чистый проект Project -> clean ...
  2. Щелкните правой кнопкой мыши по проекту -> BuildPath -> Настроить BuildPath -> вкладка Библиотеки ->

Дважды щелкните по JRE SYSTEM LIBRARY -> Затем выберите альтернативный JRE

Балкрушна Патил
источник
6

У меня была проблема, что путь к классу был как-то сломан.

Итак, щелкните правой кнопкой мыши по проекту в Package Explorer> Подключаемые инструменты> Обновить путь к классу ... Сделайте это для меня

wuppi
источник
В Neon.3 Release (4.6.3) в контекстном меню нет НИКАКИХ плагинов, щелкнув правой кнопкой мыши по проекту в Package Explorer
Timothy.Li,
6

Я решил эту проблему, обновив проект: щелкните правой кнопкой мыши проект Maven, выберите Maven -> Обновить проект -> установите флажок Принудительное обновление снимков / выпусков.

Калахастхи Сатьянараяна
источник
5

Попробуйте добавить системную библиотеку JRE в путь сборки вашего проекта.

Гаурав Пант
источник
3

Со мной это помогло изменить уровень соответствия компилятора . По неизвестным причинам он был установлен на 1,6, и я изменил его на 1,8.

На уровне проекта щелкните правой кнопкой мыши проект> Свойства> Java Compiler, а в Eclipse щелкните меню Окно> Параметры> Java> Компилятор.

Алекс П.
источник
3

Я попробовал все ответы выше, но не повезло. В моем случае есть сгенерированная папка build / classes с некоторыми дополнительными файлами ".class". Я закончил тем, что обратился к проводнику пакетов, щелкнув правой кнопкой мыши по проекту и выбрав опцию «Обновить», и это снова сделало доступной папку build / classes, чтобы решить проблему.

egallardo
источник
3

Это решило мою проблему.

1) Чистый проект Проект -> чистый ...

2) Щелкните правой кнопкой мыши по проекту -> BuildPath -> Настроить BuildPath -> вкладку Библиотеки -> Двойной щелчок по JRE SYSTEM LIBRARY -> Затем выберите альтернативный JRE

3) Нажмите Сохранить

4) Снова зайдите в ваш проект в проводнике проекта и щелкните правой кнопкой мыши проект -> BuildPath -> Настроить BuildPath -> вкладка Библиотеки -> Двойной щелчок по JRE SYSTEM LIBRARY -> На этот раз выберите «Среда выполнения»

5) Применить

Атул Вагмаре
источник
2

В моем случае это была разбитая банка в хранилище Maven. Удалите файлы JAR в хранилище и позвольте Maven загрузить их снова.

Когда я запускал mvn clean installиз командной строки, он работал нормально, но Eclipse все еще не мог скомпилировать код. Когда я бегал maven installв «Затмении», то увидел, что Мейвен пожаловался на плохую флягу. Поэтому я удалил его и maven installснова побежал . Проблема исчезла.

Евгений Шмулев
источник
2

Чтобы загрузить несуществующий jar-файл в каталог .m2, вы должны запустить mvn clean installкоманду для вашего проекта pom.xml. Затем вы должны обновить зависимости проекта, нажав Alt+F5. Это работает для меня!

ÖMER TAŞCI
источник
2

Удаление «module-info.java» решило проблему для меня!

Этот файл был автоматически сгенерирован и появился в моей иерархии ...

val_t
источник
1

У меня возникла та же проблема, потому что я добавил созданный jar-файл, в котором я установил базовый каталог упаковки, отличный от базового каталога классов. В результате класс, например, java.util.Listдолжен был быть импортирован, как util.Listбудто предложенный импорт был первым.

Проверьте импортированные файлы JAR в ссылочных библиотеках, чтобы убедиться, что они импортированы правильно

кон псих
источник
1

Я не понял причины этого, но это решило ту же проблему, с которой я столкнулся. Вы можете потребовать эти шаги перед выполнением шагов, упомянутых в вышеупомянутых решениях (очистить все проекты и автоматически построить).

щелкните правой кнопкой мыши проект -> Свойства -> Фасеты проекта -> выберите Java -> Применить

AVP
источник
1

Всякий раз, когда вы сталкиваетесь с этой проблемой, просто зайдите в Проект> Очистить, затем выберите Очистить все проекты. Это должно быть решено, в противном случае попробуйте удалить эти банки и добавить их снова. Последнее, что нужно сделать, это попытаться перезапустить Eclipse.

Сринивас Тхамманабойна
источник
1

pom.xml

Если это проект Maven, перейдите в pom.xml и удалите все банки зависимостей. Сохрани это. Проект будет автоматически построен.

Затем снова добавьте банки зависимостей (вы можете сделать Ctrl+ Z). Сохрани это. Проект будет автоматически создан, и вы не увидите эту ошибку.

sravan
источник
1

Удалите зависимость в вашем POM.XML, скачайте jar и добавьте его в buildpath.

Когда-нибудь -> Maven не будет отражать новые изменения, и это может вызвать такую ​​проблему

Раджагопал К
источник
0

Пожалуйста, попробуйте и проверьте, все ли библиотеки на месте. Я была такая же проблема. Но я решил это, переместив папку lib и снова добавив все jar-файлы в путь сборки.

Ravikumar
источник
0

У меня та же проблема. Я скачал флягу и добавил ее к пути сборки, но я не заметил, что расширение было .jar.zip. Я снова преобразовал его в .jar и добавил к пути сборки.

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

Ali786
источник
0

Если вы работаете с Maven и у вас возникла эта проблема, проверьте сервер репозитория (например, сервер Nexus), если артефакт есть. Иногда они могут изменить имя артефакта, и вы пытаетесь получить артефакт с его старым именем.

drJava
источник
0

Решено путем ссылки на источник. В проводнике щелкните правой кнопкой мыши по проекту, выберите свойства, выберите Java Build Path, выберите Source из вкладок, нажмите кнопку «LinkSource». И указав папку для добавления в проект.

живи люби смейся
источник
0

Я не мог импортировать также. Мне потребовалось несколько часов, чтобы понять, что я пытался использовать библиотеку / jar с привязкой 1.6, в то время как я пытался скомпилировать для 1.8. Когда я переключил свой проект на 1.6, проблема с импортом исчезла. Все сообщения об ошибках вели в неправильные направления. Просто в источнике я обнаружил некоторые ограничения, касающиеся версии 1.6. И: Например, .settings и .classpath (File-Search) -> org.eclipse.jdt.core.compiler.codegen.targetPlatform = 1.6 могут дать подсказку по таким вопросам.

sqller
источник
0

Я столкнулся с той же проблемой и решил ее, удалив jar, который был добавлен дважды в двух разных зависимостях от моего pom.xml. Удаление одной из зависимостей решило проблему.

Reema
источник
0

Мне показалось, что я добавляю неправильный уровень папки библиотеки. Я скачал Jericho HTML Parser , распаковал его в eclipse-workspace/libraries/jericho-html-3.4/

Затем, при добавлении этого в качестве папки внешней библиотеки, хитрость заключалась в том, чтобы перейти к этой папке, выделить папку «классы» и нажать «Открыть». Ранее я пытался добавить родительский и разные уровни подпапок, но это не сработало.

Это в значительной степени объясняется здесь , это говорит

Вы также можете добавить папку классов, каталог , содержащий файлы классов Java, которых нет в JAR.

Для меня здесь есть два урока, извинения, если они не по теме:

  1. Внимательно прочитайте инструкцию - как дословно!

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

pateksan
источник
0

Решение для Eclipse IDE

В моем случае я исправил это, исправив один из этих двух файлов, которые могут быть повреждены: .classpath или .project .

Чтобы восстановить любого из поврежденных файлов, вы можете скопировать из другого проекта , который имеет как .project файл или .classpath файл в вопросе и является безошибочным. Но не добавляйте дополнительные настройки, которые не будут использоваться.

Tavo
источник
0

[ Работа каркаса Code Igniter ] [ Библиотека импорта ]

Попробуйте щелкнуть правой кнопкой мыши проект в представлении Project Explorer, выберите « Обновить» . Все маркеры ошибок ушли на удивление в моем случае.


Я не хорош в Затмении. Я начал использовать Android Studio для разработки Android. Но раздражает, что красные маркеры ошибок постоянно зависают, пока весь проект работает нормально. Это случилось со мной, когда я использую composer для импорта библиотеки следующим образом:

require __DIR__ . '/../../vendor/autoload.php';

use \Firebase\JWT\JWT;
Нгуен Тан Дат
источник