2010-02-04 4 views
16

W IntelliJ dostaję ten dziwny błąd podczas próby kompilacji.Plik klasy nie został znaleziony w IntelliJ

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

wiem, wydaje się dość oczywiste, na czym polega problem, ale spędził zbyt dużo czasu na ten problem mam teraz zwrócić moje zaufanie do Ciebie!

Używam ideaCommunity-9, gdzie stworzyłem globalną bibliotekę dla JBoss, która zawiera wszystkie słoiki JBoss, w tym ejb3-persistence.jar. Mój moduł zawiera tę bibliotekę i przeniesię ją na szczyt zależności. Nie ma innych w Classpath Mam klasy javax.persistence.ManyToOne, a także otwiera się w IntelliJ bez problemów.
Jeśli otworzę plik, w którym wystąpi błąd kompilacji, IntelliJ nie pokazuje żadnych problemów, a także przechodzi do pliku klasy po naciśnięciu Ctrl + B.
Kod jest również budowany z użyciem mrówki i działa poprawnie.

Oprócz powyższego błędu dostaję sześć innych osób na tej samej ścieżce (nazwisko w tabeli itp.) - wszystkie związane z JPA. Dostaję również komunikat "Proszę zgłoś błąd do JDC yada yada yada."

+0

Czy można otworzyć klasę "ManyToOne" za pomocą skrótu klawiaturowego + N? –

+0

Tak, nie mam problemu z wyświetleniem pliku klasy dla ManyToOne. Daje mi miejsce w pliku ejb3-persistence.jar, który ponownie znajduje się w JBoss. Posiada również metodę cascade(). – homaxto

Odpowiedz

29

Spróbuj zaznaczyć pole wyboru "eksportuj" w swoich zależnościach.

To znaczy: Struktura projektu -> Moduły -> Zależności, i tam można zobaczyć biblioteki dołączone do modułu. Powinieneś również zobaczyć pole wyboru w pobliżu każdej biblioteki w kolumnie "Eksportuj".

+0

Miałem podobny problem (inna adnotacja ten sam błąd). To działało dla mnie. Dzięki! – user127386

1

Czy to nie jest podobne do tego SO question?

Rozwiązaniem było dodać cały słoik JBoss (co robiłeś), ale także wszystkie związane uporczywe-biblioteki (jak Hibernate)

zobaczyć ten JBoss project configuration na przykład:

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

W krótki, ejb3-persistence.jar może nie stanowić tu problemu, po prostu brakuje jednego z objawów braku elementów .
Lub, jeśli jest to problem, może być związane z faktem, że nie jest prawidłowo wdrożone (dla WebApp configuration).

0

Oto pomysł: Może masz wiele wersji pliku JAR. Wyszukaj hierarchię folderów dla pliku ejb3-persistence.jar, za pomocą narzędzia do zarządzania plikami, takiego jak Total Commander. Wielokrotne pojawienie się pliku w ścieżce klas może spowodować, że IntelliJ Idea nie rozpozna odpowiedniej klasy w odpowiednim słoiku.

0

miał podobny problem ("Nie można odnaleźć klasy sprężynę ... DefaultResourceLoader choć był w moich zależności maven) i żadna ilość szczypanie przedłużania skrytek wydawało się pomóc. Wieje od mojego $ HOME/.Idea * Ścieżki i (w zasadzie) zaczynałem od zera naprawiłem to dla mnie ... Przynajmniej na razie ...

2

Jestem pewien, że jest za późno na odpowiedź, ale musiałem zastosować inne podejście do tego błędu, aby rozwiązać ten problem.

Musiałem utworzyć tę bibliotekę globalną i dodać tę bibliotekę do modułu, a następnie tylko błąd został rozwiązany.

Add this as a global library

Then add that library as dependency to the project

0

ja dostawałem komunikat class not found błędzie podczas próby wykonania klasy .groovy testową, która odwołuje się .groovy plik (znajdujący się w głównym katalogu źródłowego z modułem - czyli nie pakiety).

Przeniesienie pliku źródłowego .groovy do paczki rozwiązało problem.

Move:

src/main/groovy/RunMe.groovy 

do

src/main/groovy/somePackage/RunMe.groovy 
0

W IntelliJ mam ten problem, kiedy wbudowany (Ctrl + Shift + F9) na poziomie plików.

Powodem jest to, że miałem zmiany w innych plikach tego samego projektu, które nie zostały wybrane.

Rozwiązałem go poprzez budowanie na poziomie projektu (Wybierz projekt Maven w IntelliJ i naciśnij Ctrl + Shift + F9)

4

Właśnie ta sama, ale nie z tych rzeczy były moim problemem. Pobrałem projekt z githubu, a następnie otworzyłem go w intelli J z problemem po próbie uruchomienia testu junit.

rozwiązanie: struktura projektu -> Moduły -> 'PROJECT_NAME' -> Źródła (TAB) -> kliknij folderu src -> Oznacz jak: źródła

Należy to podkreślić src się niebieski i wszystkie pliki klasa powinna być kręgami z C zamiast wyglądać jak zwykłe pliki. Spróbuj ponownie uruchomić test i sprawdź, czy to działa.