web-dev-qa-db-ja.com

IntelliJにクラスファイルが見つかりません

IntelliJでコンパイルしようとすると、この奇妙なエラーが発生します。

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

問題は何であるかは明らかですが、この問題にあまりにも多くの時間を費やしたので、私はあなたに私の信頼を向けます!

私は、eedb3-persistence.jarを含むすべてのJBoss jarを含むJBossのグローバルライブラリを作成したideaCommunity-9を使用しています。私のモジュールにはこのライブラリが含まれており、依存関係の最上位に移動しました。クラスパスの他の場所には、javax.persistence.ManyToOneクラスがなく、IntelliJでも問題なく開きます。
コンパイルエラーが発生したファイルを開くと、IntelliJは問題を表示せず、Ctrl + Bを押すとクラスファイルに移動します。
コードもantでビルドされており、ここでは正常に動作します。

上記のエラーに加えて、同じパス(テーブル内の名前など)に沿って6つの他のエラーが発生します。すべてJPAに関連しています。 「JDC yada yada yadaにバグを報告してください」というメッセージも表示されます。

22
homaxto

依存関係の「エクスポート」チェックボックスをオンにしてみてください。

つまり、「ファイル」メニュー->プロジェクト構造->モジュール->依存関係であり、モジュールに含まれているライブラリを確認できます。また、[エクスポート]列の各libの近くにチェックボックスが表示されます。

32
Roman

これを自分で手に入れましたが、これらのことは私の問題ではありませんでした。 githubからプロジェクトをダウンロードし、junitテストを実行しようとした後、問題のあるIntel Jで開きました。

解決策:プロジェクト構造->モジュール-> 'Project_Name'->ソース(タブ)-> srcフォルダーをクリック->マーク:ソース

これにより、srcが青く強調表示され、すべてのクラスファイルが通常のファイルのように見えるのではなく、Cの付いた円になります。もう一度テストを実行してみて、それが機能するかどうかを確認してください。

12
plosco

確かに、答えるのは遅すぎますが、この問題を解決するには、このエラーに対して別のアプローチに従う必要がありました。

これをグローバルライブラリとして作成し、そのライブラリをモジュールに追加すると、エラーのみが解決されました。

Add this as a global library

Then add that library as dependency to the project

3
Buddha

これはこれに似ていません SO質問

そこでの解決策は、JBossのすべてのjarを追加することでした(そうしました)だけでなく、すべての永続的な関連ライブラリ(Hibernateなど)も追加しました。

これを参照してください JBossプロジェクト構成 例:

代替テキストhttp://jdick.co.uk/blog/wp-content/uploads/2008/12/projectstructure1.jpg

要するに、 ejb3-persistence.jarは、ここでは問題ではない可能性があります。other要素の兆候がないだけです。
または、それが問題である場合、正しくデプロイされていないことに関連している可能性があります( WebApp構成 の場合)。

1
VonC

同様の問題があり(「クラスSpringが見つかりません... DefaultResourceLoaderでも、Mavenの依存関係ではwasです)、キャッシュの再検証の微調整は役に立たないようです。私の$ HOME/.Idea *パスと(基本的に)ゼロから始めて修正しました。少なくとも今のところ...

0
rogerdpack

ここにアイデアがあります:多分あなたのjarファイルの複数のバージョンがあるでしょう。 Total Commanderなどのファイル管理ツールを使用して、フォルダー階層でejb3-persistence.jarファイルを検索します。クラスパスにファイルが複数表示されていると、IntelliJ Ideaが適切なjarの適切なクラスを認識しない場合があります。

0
Yuval F

IntelliJでは、ファイルレベルで(ctrl + shift + F9)をビルドしたときにこの問題が発生しました。

その理由は、同じMavenプロジェクト内の他のファイルに変更があり、選択されなかったためです。

プロジェクトレベルでビルドすることで解決しました(intellijでMavenプロジェクトを選択し、Ctrl + Shift + F9を押します)

0
developer747

class not foundファイル(サブモジュールのソースディレクトリのルートにある-つまりパッケージがない)を参照する.groovyテストクラスを実行しようとすると、.groovyエラーメッセージが表示されました。

ソースファイル.groovyをパッケージに移動すると、問題が修正されました。

移動:

src/main/groovy/RunMe.groovy

to

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