Файл класса не найден в IntelliJ - PullRequest
20 голосов
/ 04 февраля 2010

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

Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found

Я знаю, кажется, что проблема довольно очевидна, но потратив слишком много времени на эту проблему, я теперь переворачиваю своюдоверься тебе!

Я использую ideaCommunity-9, где я создал глобальную библиотеку для JBoss, которая содержит все jar-файлы JBoss, включая ejb3-persistence.jar.Мой модуль включает эту библиотеку, и я переместил ее в верхнюю часть зависимостей.Ни в каком другом месте в classpath у меня нет класса javax.persistence.ManyToOne, и он также открывается без проблем в IntelliJ.
Если я открою файл, в котором я получаю сообщение об ошибке компиляции, IntelliJ не покажет проблем, а также перейдет к файлу классапри нажатии Ctrl + B.
Код также строится с помощью Ant, и здесь он работает нормально.

Помимо вышеуказанной ошибки, я получаю шесть других по тому же пути (имя в таблице и т. д.) - всесвязанные с JPA.Я также получаю сообщение «Пожалуйста, отправьте сообщение об ошибке в JDC yada yada yada».

Ответы [ 8 ]

32 голосов
/ 12 февраля 2010

Попробуйте установить флажок «экспорт» в ваших зависимостях.

Я имею в виду: меню «Файл» -> Структура проекта -> Модули -> Зависимости, и там вы можете увидеть библиотеки, включенные в модуль.Вы также должны увидеть флажок возле каждой библиотеки в столбце «Экспорт».

10 голосов
/ 07 августа 2015

Просто получил это сам, но ни одна из этих вещей не была моей проблемой. Я скачал проект с github, затем открыл в Intelli-J с проблемой после попытки запустить тест junit.

Решение: Структура проекта -> Модули -> 'Имя_проекта' -> Источники (вкладка) -> щелкните папку src -> Пометить как: источники

Это должно выделить src синим цветом, и все файлы классов должны быть кружками с C, а не выглядеть как обычные файлы. Попробуйте запустить тест еще раз и посмотрите, так ли это.

2 голосов
/ 22 августа 2014

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

Я должен был создать это как глобальную библиотеку и добавить эту библиотеку в модуль, тогда только ошибка будет устранена.

Add this as a global library

Then add that library as dependency to the project

1 голос
/ 10 февраля 2010

Разве это не похоже на этот ТАК ?

Решением было добавить весь JBoss jar (который вы сделали), а также все постоянные библиотеки (например, Hibernate)

См. Конфигурация проекта JBoss , например:

альтернативный текст http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

Короче говоря, ejb3-persistence.jar здесь может не быть проблемой, просто симптом других элементов, отсутствующих.
Или, если это проблема, это может быть связано с тем, что она развернута неправильно (для конфигурации WebApp ).

0 голосов
/ 08 апреля 2015

В intelliJ у меня возникла эта проблема при сборке (ctrl + shift + F9) на уровне файлов.

Причина в том, что у меня были изменения в других файлах в том же проекте maven, которые не были полученывыбрано.

Я решил это путем построения на уровне проекта (выберите проект Maven в intellij и нажмите ctrl + shift + F9)

0 голосов
/ 12 января 2015

Я получал сообщение об ошибке class not found при попытке выполнить тестовый класс .groovy, который ссылался на файл .groovy (расположенный в корне исходного каталога подмодуля, то есть без пакетов).

Перемещение исходного файла .groovy в пакет, исправило проблему для меня.

Перемещение:

src/main/groovy/RunMe.groovy

в

src/main/groovy/somePackage/RunMe.groovy
0 голосов
/ 27 июня 2013
У

была похожая проблема («не могу найти пружину класса ... DefaultResourceLoader, даже если он был в моих зависимостях maven), и никакие изменения настроек повторных проверок кэшей, похоже, не помогли..Идея * пути и (в основном), начиная с нуля, исправили это для меня. По крайней мере, пока ...

0 голосов
/ 15 февраля 2010

Вот идея: может быть, у вас есть несколько версий вашего файла JAR.Найдите в иерархии папок файл ejb3-persistence.jar, используя инструмент управления файлами, например Total Commander.Многократное появление файла в вашем пути к классам может привести к тому, что IntelliJ Idea не сможет распознать правильный класс в правильном банке.

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