IntellijのJavaプロジェクトで「シンボルが見つかりません」を取得する


96

クラスから静的シングルトンインスタンスにこの呼び出しを行いますGameManager.java

HUD.getInstance().update(timeDelta);

HUD.javaHUDクラス、HUDTextElementおよび他の2つの関連クラスが含まれていHUDElementます。すべてのクラスは同じルートパスにあります../src/org/mypackage

ただし、このJavaプロジェクトをIntelliJでコンパイルすると、呼び出しを行った行にSymbol HUD見つかりませんHUD.getInstance()

このまったく同じコードは、Eclipseで問題なくコンパイルされますが、問題は何ですか?


1
両方にHUDクラスがインポートされていますか?
Alex Coleman

これは私のために働いたこの問題に対する唯一の解決策ですstackoverflow.com/a/56473166/8660553
Sahil SInghal

回答:


167

[ビルド]-> [プロジェクトの再構築]を選択して解決します


17
Java / IntelliJの完全な初心者のための注意:上記は「Build Project」とは異なります
hiljusti

4
@JustinHill-私は日食に精通していて、IntelliJの新人です。2つのポイントとIntellJでの時間を解決するのに役立つポイント/リンクの違いについて教えてください。
nanosoft

1
私はおそらくグーグル検索よりも悪いリソースです、私はEclipseを使用していません。私のコメントは、 "Rebuild Project"と "Build Project"は異なるオプションだということです(これに遭遇した人を助けていて、彼らはオプションの違いに気づきませんでした)
hiljusti

1
なぜこれはうまくいったのですか?キャッシュを無効にして再起動しても機能しませんでした。
b15

動作しました...「maven clean compile」を実行しようとしましたが、問題は解決していませんでした
Omtara

54

同じ問題があり、新しいプロジェクトを完全にコンパイルしたことはありませんでした。そのため、右クリックして「コンパイル」(MacではShift-cmd-F9)を選択して修正しました。保存時のコンパイルでは、コンパイルされていないファイルが「表示」されないようです。

srcフォルダーをソースとしてマークしても、私の場合役に立ちませんでした


44

同じ問題があり、[ファイル]> [キャッシュを無効にする]をクリックして修正しました。


1
気をつけてください -何らかの変更があり、それらがコミットされていない場合、それらは失われます。:)
ニコラ

4
キャッシュを無効にしても、変更が失われることはありません。それがどのように機能するかさえわかりません。ファイルを保存すると、IntelliJのキャッシュやリポジトリへのコミットに関係なく、ファイルが保存されます。
クリストファーシュナイダー

29

これはおそらく../srcフォルダーがIntellij IDEAで「ソース」フォルダーとしてマークされていないため、クラスを見つけるためにそこを参照することを認識していません。これを修正するには、プロジェクトエクスプローラーでフォルダーを右クリックし、[ソースフォルダーとしてマーク]を選択します。


1は可能性がありますが、HUDが見つからなかったことを示すエラーではなく、getInstance / updateメソッドがないことを示すエラーを彼に与えないでしょうか?
Alex Coleman、

このオプションはなくなったようです。
clankill3r 2013

いいえ、ポップアップオプションに変換されます: "Mark Directory As>"
Dracontis 2013年

私のsrcにはテストフォルダとマルチモジュールが含まれており、ソースルートとしてマークした後、私の問題は最悪です。
Se Song

私にとってこれは正解に近いものでした。私のソースルートは既にマークされていましたが、エラーを修正するために、「ソースルートとしてマークを解除」してから再度ソースルートとしてマークする必要がありました。
yanni 2018年

26

私がしたとき、私は同じ「シンボルが見つかりません」エラーを受け取りBuild -> Make Projectました これを修正するには、Maven /targetフォルダーを削除し、プロジェクトモジュールを右クリックしてMaven -> Reimport、を実行しBuild -> Rebuild Projectます。これはIntelliJ Idea 13.1.5に関するものです。

Maven -> Reimport問題が何度か再浮上してからようやくそれが実現したため、それが鍵であることがわかりました。


12

これまでのヘルプに感謝します。修正は、最初にHUD.javaをコンパイルすることでした(ファイルを右クリックして、[HUD.javaをコンパイル])。Javaファイルをコンパイルした後、プロジェクトの残りの部分は問題なくコンパイルできました。

これがなぜそれを修正したのか、またはIntelliJがこれを自動的に行わなかった理由は本当にわかりませんが、ルートエラーはIntelliJが単一の.javaファイルに複数のクラスを持つことを正しく処理していないことに関係しているようです。


1
IntelliJは1つのファイルで複数のクラスを問題なく処理できます。ファイルがいつかコンパイルされたことを確認する必要があります。

ええ、ただし、1つのクラスファイルで同じ問題が発生しただけです。奇妙なことに、私がこのmavenコマンドを実行する直前は、問題なく実行されていましたmvn com.zenjava:javafx-maven-plugin:2.0:fix-classpath。これは、javafx jarをlibsディレクトリから現在のJDKのextディレクトリに移動するためのものです。ここで見つけ
nihilon

7

プロジェクトを右クリックして、「Run Maven」サブメニューの「Reimport」を選択する必要がありました。


5

私のプロジェクトではmavenを使用しています。何らかの理由でIntelliJは私にこの種の奇妙なエラーを与えていました。私はmvn cleanを実行して再同期を試みましたが、これらのエラーは消えました。


1
cleanはMavenのライフサイクルです。mavenプロジェクトによって作成されたすべての出力ファイルをクリーンアップする場合に使用します。
Moiz Raja 2013

5

私にとって-これらの手順(キャッシュの無効化と再起動、Mavenの再インポート)を試しましたが、機能しませんでした。私は削除したので.idea.settings、および.projectフォルダをしてみました-それが働きました。


3
.ideaフォルダを削除することでうまくいきました。
ダニエルD.

4

これは、フォルダーを削除してから、コピーして貼り付けてプロジェクトに戻したときに起こりました。

Right-click project folder -> Rebuild 私のために働いた。


3

私は同じ問題に直面し、答えにはたくさんの解決策があり、これらすべての解決策を試すのにかなり時間がかかりました。このエラーが発生した場合は、ここで系統的なアプローチを提案したいと思います。

次の点を確認し、不足しているものがある場合は作成/更新します

  1. srcフォルダーはソースフォルダーとしてマークされます
  2. .imlsファイルが存在する
  3. 注釈処理が有効です
  4. 最近@UtilityClassを使用した場合は、それも理由である可能性があります、Bug Link

すべて問題なければ、次の解決策を所定の順序で試すことができます

  1. ファイル/モジュールを再コンパイルします

  2. それでも問題が解決しない場合は、Mavenの依存関係を更新してMaven -> Reimport、とBuild -> Rebuild Project

  3. 試す mvn clean install -DskipTests

  4. IntelliJキャッシュを無効にしてIDEを再起動してみてください。 File > Invalidate caches/ restart

  5. .ideaフォルダーを削除してプロジェクトを再インポートする

クレジットとこの質問に回答したすべての人に感謝し、各ポイントに関する詳細については、回答を参照できます。


1
機能:ファイル>キャッシュの無効化/再起動を使用して、IntelliJキャッシュを無効にしてIDEを再起動してみます
エネルギー

2

これは古い質問であることはわかっていますが、最近の経験によれば、これはビルドリソースが削除されているか、Ideaがソースとして認識できないために発生します。

エラーが表示される場合は常に、フォルダー/ディレクトリのソースを提供してください。このエラーは解決する必要があります。

フォルダー全体にソースを割り当てる場合でも、個々のクラスがまだ使用できない場合があります。初心者ユーザーにとって簡単な解決策は、新しいコピーをインポートしてアプリケーションを再度ビルドし、問題なく動作するようにすることです。

この後、クリーンインストールを実行することをお勧めします。


2

メインのApplication.javaクラスを再コンパイルするとうまくいきました。クラスを右クリック> [再コンパイル]


2

私はこのスレッドが古いことを知っていますが、別の解決策は実行することでした

$ mvn clean install -Dmaven.test.skip=true

IntelliJでCMD + Shift + A(mac os)->「すべてのMavenプロジェクトを再インポート」と入力します。

それがうまくいかない場合は、Mavenの依存関係を強制的に再ダウンロードしてみてください

$ mvn clean -U install -Dmaven.test.skip=true

私の場合、コードの他の部分が参照する(XMLファイルに基づく)自動生成されたクラスがありました。Mavenの作品を使用してビルドしているときに、mvn install編集されていない場合でも、IntelliJはそれらの参照を認識せず、実行環境で失敗しました。
tokosh

2

Lombokには注釈処理を有効にする必要があるため、私には問題がありました。このチェックボックスはSettings > Build > Compiler > Annotation Processors


ありがとうございました!これで解決しました。
にゃらしゃ

1

私の場合、問題は、Intellij IdeaのJavaプロジェクトでLombokの実験的な機能@UtilityClassを使用して、クラスメソッドに「静的」と注釈を付けることでした。アノテーションを使用する代わりに、クラスの各メソッドを明示的に「静的」にすると、すべてのコンパイルの問題がなくなりました。


0

これは「intelliJがシンボルを見つけることができません」というエラーを検索するGoogleでの最初のヒットなので、私のソリューションも投入します。

私にとっての問題は、私のプロジェクトがEclipseから作成されsrc/generated-sourcesたものであり、一部のファイルにはpom.xmlの仕様によって生成されたクラスへの依存関係が含まれていたことです。何らかの理由で、プロジェクトを最初に開いたときにこれが適切に実行されず、再構築/再インポートが役に立たなかったため、ファイルが生成されませんでした。

解決策は、モジュールを右クリックして、Maven -> Generate Sources and Update Foldersそれが問題を解決し、コンパイルできることを選択することでした。


0

参照しようとしているJavaクラスのソースファイルに.java拡張子があることを確認してください。それは.aj私の場合でした(作成時に「クラスの作成」ではなく「アスペクトの作成」を押したに違いありません)。IntelliJはこのファイルに「通常の」クラスと同じアイコンを表示しますが、ビルド時にコンパイラーはそれを表示しません。

私の場合それ.aj.java修正するように変更します。



0

依存関係がどうにか解決されなかったクラスをインポートしたことを除いて、同じ問題が発生していました。Mavenプロジェクトを更新しました。RebuildProjectです。それでも解決しませんでした。IntelliJが誤ってキャッシュしているようです。IntelliJを再起動し、依存関係を解決しました。どういうわけかキャッシュをクリアしたと思います。


0

Lombokを使用している場合は、注釈処理が有効になっていることを確認してください。


0

私は、これはあなたの問題を解決していないビルドまたは再ビルドが、念のために提案回答の多くを見ているだけで、あなたが持っているIDEAは、メソッドを検出することができますが、それは場合にはコンパイルされません気づくnewことが可能になるようにする前にインスタンスが必要です。

ここに画像の説明を入力してください


0

私の場合、別のモジュールからクラスを見つけることに問題がありました。ではpom.xml<scope>compile</scope>指定した依存関係がありました。この行を削除すると役立ちました。


-1

私はこれが古いことを知っていますが、他の誰にとっても、欠落しているクラスが、エラーが発生するクラス/それを呼び出すクラスと同じパッケージにあることを確認してください。


クラスは他のパッケージからインポートできるため、反対投票。通常、ターゲットクラスはインポートされ、クラスパスにある必要があります。Mavenを使用する場合、依存関係を正しく設定する必要があります。
fxnn 2017
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.