Файл класса не найден в IntelliJ

В 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. Мой модуль включает эту библиотеку, и я переместил ее в начало зависимостей. В пути к классам нет другого места. У меня есть класс javax.persistence.ManyToOne, и он также без проблем открывается в IntelliJ.
Если я открою файл, в котором я получаю ошибку компиляции, IntelliJ не показывает проблем и также переходит к файлу класса. при нажатии Ctrl+B.
Код тоже собран с помощью ant, и здесь он работает нормально.

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


person homaxto    schedule 04.02.2010    source источник
comment
Можно ли открыть класс ManyToOne с помощью сочетания клавиш ‹Ctrl›+N?   -  person Boris Pavlović    schedule 04.02.2010
comment
Да, у меня нет проблем с просмотром файла класса для ManyToOne. Это дает мне местоположение в ejb3-persistence.jar, которое снова находится в JBoss. Он также имеет метод cascade().   -  person homaxto    schedule 04.02.2010


Ответы (8)


Попробуйте поставить галочку "экспорт" в ваших зависимостях.

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

person Roman    schedule 11.02.2010
comment
У меня была похожая проблема (другая аннотация та же ошибка). Это сработало для меня. Спасибо! - person user127386; 17.02.2010
comment
Иногда после этого может потребоваться перезапуск Intellij. - person Mukul Bansal; 12.09.2019
comment
Это не работает для меня. Вместо этого Build -> Rebuild Project работал - person Riccardo; 14.01.2020

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

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

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

person plosco    schedule 06.08.2015

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

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

Добавить это как глобальную библиотеку

Затем добавьте эту библиотеку как зависимость к проекту

person Buddha    schedule 22.08.2014

Разве это не похоже на этот SO-вопрос?

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

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

http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

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

person VonC    schedule 10.02.2010

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

person Yuval F    schedule 14.02.2010

была аналогичная проблема («не удается найти класс spring...DefaultResourceLoader, хотя он был в моих зависимостях maven), и никакая настройка перепроверяющих кешей, похоже, не помогла. Сдувание моего $HOME/.Idea * пути и (в основном) запуск с нуля исправили это для меня.По крайней мере, на данный момент...

person rogerdpack    schedule 27.06.2013

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

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

Переместить:

src/main/groovy/RunMe.groovy

to

src/main/groovy/somePackage/RunMe.groovy
person Nick Grealy    schedule 12.01.2015

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

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

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

person developer747    schedule 08.04.2015