Файл класса не найден в IntelliJ
В IntelliJ я получаю эту странную ошибку, когда пытаюсь скомпилировать.
Cannot find annotation method 'cascade()' in type 'javax.persistence.ManyToOne': class file for javax.persistence.ManyToOne not found
Я знаю, кажется довольно очевидным, в чем проблема, но, потратив слишком много времени на эту проблему, теперь я доверяю вам!
Я использую ideaCommunity-9, где я создал глобальную библиотеку для JBoss, которая содержит все банки JBoss, включая ejb3-persistence.jar. Мой модуль включает эту библиотеку, и я переместил ее в начало зависимостей.
Нигде в classpath у меня есть класс javax.persistence.ManyToOne, и он также открывается в IntelliJ без проблем.
Если я открою файл, где я получаю ошибку компиляции, IntelliJ не показывает проблем, а также переходит к файлу класса при нажатии Ctrl + B.
Код также создается с помощью ant, и здесь он отлично работает.
Помимо вышеупомянутой ошибки, я получаю шесть других по одному и тому же пути (имя в таблице и т.д.) - все это связано с JPA. Я также получаю сообщение о том, что "Пожалуйста, напишите ошибку JDC yada yada yada".
Ответы
Ответ 1
Попробуйте установить флажок "экспорт" в ваши зависимости.
Я имею в виду: Структура проекта → Модули → Зависимости, и там вы можете увидеть библиотеки, включенные в модуль. Вы также должны увидеть флажок рядом с каждой библиотекой в столбце "Экспорт".
Ответ 2
Просто получил это сам, но не из тех вещей, которые были моей проблемой. Я загрузил проект из github, а затем открыл его в intelli J с проблемой после попытки выполнить тест junit.
Структура проекта → Модули → 'Project_Name' → Источники (вкладка) → щелкните папку src → Отметьте как: Источники
Это должно означать, что src будет синим, а все файлы классов должны быть кругами с C, а не похожими на обычные файлы. Попробуйте снова запустить тест и посмотрите, не делает ли это.
Ответ 3
Я уверен, что уже слишком поздно отвечать, но я должен был придерживаться другого подхода к этой ошибке, чтобы решить эту проблему.
Мне пришлось создать это как глобальную библиотеку и добавить эту библиотеку в модуль, а затем разрешить только ошибку.
![Add this as a global library]()
![Then add that library as dependency to the project]()
Ответ 4
Разве это не похоже на этот вопрос SO?
Было решено добавить все JBoss jar (что вы сделали), но также и все связанные с ней библиотеки (например, Hibernate)
Смотрите конфигурацию JBoss, например:
alt text http://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg
Короче говоря, ejb3-persistence.jar
может не быть проблемой здесь, просто признаком отсутствия других элементов.
Или, если это проблема, это может быть связано с тем, что она не развернута правильно (для Конфигурация WebApp).
Ответ 5
Вот идея:
Возможно, у вас есть несколько версий вашего файла jar.
Найдите иерархию папок для файла ejb3-persistence.jar
,
используя инструмент управления файлами, такой как Total Commander.
Несколько представлений файла в вашем пути к классу могут смутить IntelliJ Idea
чтобы не распознать правильный класс в надлежащей банке.
Ответ 6
имела аналогичную проблему ("не удается найти класс spring... DefaultResourceLoader, даже если это было в моих зависимостях от maven), и никакая корректировка перепрошиваемых кешей, похоже, не помогла. Удалите мои пути $HOME/.Idea * и (в основном), начиная с нуля, исправил это для меня. По крайней мере на данный момент...
Ответ 7
Я получал сообщение об ошибке class not found
при попытке выполнить тестовый класс .groovy
, который ссылался на файл .groovy
(расположенный в корне исходной директории подмодуля, то есть без пакетов).
Перемещение исходного файла .groovy
в пакет, исправил проблему для меня.
Move:
src/main/groovy/RunMe.groovy
к
src/main/groovy/somePackage/RunMe.groovy
Ответ 8
В intelliJ у меня возникла эта проблема, когда я построил (ctrl + shift + F9) на уровне файла.
Причина в том, что у меня были изменения в других файлах в том же проекте maven, которые не были выбраны.
Я решил это, построив на уровне проекта (выберите проект Maven в intellij и нажмите ctrl + shift + F9)
Ответ 9
В intelliJ у меня возникла эта проблема, когда я построил (ctrl + shift + F9) на уровне файла класса.
Причина в том, что у меня были изменения в других файлах в одном проекте maven, которые не были выбраны.
Я решил это, построив на уровне проекта (выберите проект Maven в intellij и нажмите ctrl + shift + F9)