Behebung von 'cannot find symbol' in Java

English Deutsch

Problem:

You want to compile some Java source code (e.g. using Maven), but you get an error message like

java_compile_error.txt
[ERROR] /home/user/myproject/src/main/java/com/mydomain/myproject/Main.java:[123,40] cannot find symbol
[ERROR] symbol: class MyClass

Lösung

Java weiß nicht, wo es MyClass finden kann.

Überprüfe zuerst, ob du MyClass korrekt importiert hast.

Wenn MyClass in deiner Bibliothek gefunden werden kann, fehlt höchstwahrscheinlich eine Import-Anweisung am Anfang der Datei, in der der Fehler auftritt.

Wenn andererseits MyClass aus einer externen Bibliothek importiert wird, überprüfe, ob:

If you don’t know in which library you can find a certain symbol in, see our post [To be done].

Was genau sind ‘Symbole’?

Das Konzept und der Begriff eines Symbols werden in vielen verschiedenen Programmiersprachen verwendet. Basically it means ‘a name that refers to something declared somewhere else in more detail’.

Daher, wenn du auf Fehlermeldungen wie ‘cannot find symbol’ stößt, versucht der Compiler dir zu sagen: “Ich weiß nicht, worauf sich dieser Name bezieht”.

Beispiel:

Wenn du eine Klasse in Java deklarierst, z.B.

MyClass.java
class MyClass {
    /* Dein Code kommt hierhin ! */
}

kannst du später auf diese Klasse mit ihrem Namen, MyClass, verweisen, z.B. in

UseMyClass.java
MyClass class = new MyClass();

In that line of code, MyClass is used symbolically to refer to the full class declaration (class MyClass { /* ... */}) which we listed before.

Daher wird MyClass als Symbol verwendet, um auf deine vorherige (vollständige) Deklaration von MyClass zu verweisen.

Wenn der Name MyClass jedoch keine zugehörige vollständige Deklaration hat, wird der Compiler dir ‘cannot find symbol’ mitteilen.


Check out similar posts by category: Java