546 Stimmen

Was bedeutet ein Fehler "Cannot find symbol" oder "Cannot resolve symbol"?

Bitte erläutern Sie das Folgende zu Fehlern wie "Cannot find symbol", "Cannot resolve symbol" oder "Symbol not found" (in Java):

  • Was bedeuten sie?
  • Welche Ursachen können sie haben?
  • Wie geht der Programmierer dabei vor, sie zu beheben?

Diese Frage soll eine umfassende Frage-und-Antwort-Runde zu diesen häufigen Kompilierungsfehlern in Java starten.

5voto

Jonathan Lin Punkte 18242

Wenn Sie diesen Fehler irgendwo anders im Build erhalten, während Ihr IDE sagt, dass alles perfekt ist, überprüfen Sie, ob Sie an beiden Stellen dieselben Java-Versionen verwenden.

Zum Beispiel haben Java 7 und Java 8 verschiedene APIs, daher würde das Aufrufen einer nicht vorhandenen API in einer älteren Java-Version diesen Fehler verursachen.

5voto

avp Punkte 2312

Es können verschiedene Szenarien auftreten, wie es in vorherigen Antworten erwähnt wurde. Hier sind ein paar Dinge, die mir geholfen haben, dies zu lösen.

  1. Wenn Sie IntelliJ IDEA verwenden

    Menü Datei Caches invalidieren/Neustart

oder

  1. Die referenzierte Klasse befand sich in einem anderen Projekt und diese Abhängigkeit wurde nicht zur Gradle-Build-Datei meines Projekts hinzugefügt. Also habe ich die Abhängigkeit hinzugefügt mit

    compile project(':anotherProject')

    Und es hat funktioniert.

4voto

UdayKiran Pulipati Punkte 6361

Wenn der Eclipse Java-Build-Pfad auf 7, 8 und im Projekt in der pom.xml Maven-Properties java.version auf eine höhere Java-Version (9, 10, 11 usw.) als 7, 8 festgelegt ist, müssen Sie die Datei pom.xml aktualisieren.

In Eclipse, wenn Java auf Java-Version 11 festgelegt ist und in der pom.xml auf Java-Version 8 festgelegt ist. Aktualisieren Sie die Eclipse-Unterstützung auf Java 11, indem Sie die folgenden Schritte in der Eclipse-IDE durchführen

Menü Hilfe Neue Software installieren fügen Sie den folgenden Link http://download.eclipse.org/eclipse/updates/4.9-P-builds unter Arbeiten mit ein

oder

Hinzufügen (Ein Popup-Fenster wird geöffnet) ->

Name: Java 11 Unterstützung Ort: http://download.eclipse.org/eclipse/updates/4.9-P-builds

Aktualisieren Sie dann die Java-Version in den Maven-Eigenschaften der pom.xml-Datei wie folgt:

11
${java.version}
${java.version}

Zum Schluss klicken Sie mit der rechten Maustaste auf das Projekt Debuggen als -> Maven bereinigen, Maven-Bau-Schritte.

3voto

Divya Jose Punkte 389

Auch ich hatte diesen Fehler (für den ich gegoogelt habe und zu dieser Seite geleitet wurde).

Problem: Ich habe eine statische Methode aufgerufen, die in der Klasse eines Projekts A definiert ist, von einer in einem anderen Projekt B definierten Klasse.

Ich habe den folgenden Fehler erhalten:

Fehler: Symbol nicht gefunden

Lösung: Ich habe das Problem gelöst, indem ich zuerst das Projekt erstellt habe, in dem die Methode definiert ist, und dann das Projekt, von dem aus die Methode aufgerufen wurde.

1voto

ANIL KUMAR Punkte 119

Sie haben Ihren Code mit maven compile kompiliert, maven test verwendet, um ihn auszuführen, und es hat gut funktioniert. Jetzt, wenn Sie etwas in Ihrem Code geändert haben und dann ohne Kompilierung ausführen, erhalten Sie diesen Fehler.

Lösung: Kompilieren Sie es erneut und führen Sie dann den Test aus. Bei mir hat es auf diese Weise funktioniert.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X