Javakurs2006/Probleme: Unterschied zwischen den Versionen
(→Klassen werden nicht gefunden) |
K (Kategorisiert) |
||
(4 dazwischenliegende Versionen von 2 Benutzern werden nicht angezeigt) | |||
Zeile 2: | Zeile 2: | ||
=== Klassen werden nicht gefunden === | === Klassen werden nicht gefunden === | ||
− | beim compilieren (von X.java, | + | beim compilieren (von Datei X.java, welche ein Objekt Y aus der Datei Y.class/Y.java einbinden will: |
X.java:5: cannot resolve symbol | X.java:5: cannot resolve symbol | ||
symbol : class Y | symbol : class Y | ||
Zeile 23: | Zeile 23: | ||
:dann habt ihr das Programm mit "java KlassennameDenIhrGeradeKompiliertHabt.class" aufgerufen, was falsch ist. Man darf hier das "class" nicht an den Befehl anhängen. | :dann habt ihr das Programm mit "java KlassennameDenIhrGeradeKompiliertHabt.class" aufgerufen, was falsch ist. Man darf hier das "class" nicht an den Befehl anhängen. | ||
− | === unchecked or unsafe operations=== | + | === Fehlermeldung "unchecked or unsafe operations" === |
Note: Test.java uses unchecked or unsafe operations. | Note: Test.java uses unchecked or unsafe operations. | ||
Note: Recompile with -Xlint:unchecked for details. | Note: Recompile with -Xlint:unchecked for details. | ||
− | :Dann könnt ihr die entweder ignorieren, oder aber ihr | + | :Dann könnt ihr die entweder ignorieren, oder aber ihr übergebt den zusätzlichen Parameter an den Java-Compiler (javac -Xlint:unchecked foo.java). |
+ | Normalerweise sollte man solche Konstrukte natürlich vermeiden, dazu ist ja die Fehlermeldung da, aber für den Kurs ist das erstmal nicht weiter wichtig. | ||
[[Javakurs2006| <- zurück zur Startseite]] | [[Javakurs2006| <- zurück zur Startseite]] | ||
+ | [[Kategorie:Java]] |
Aktuelle Version vom 17. März 2009, 13:03 Uhr
Inhaltsverzeichnis
Einige häufige Probleme mit java
Klassen werden nicht gefunden
beim compilieren (von Datei X.java, welche ein Objekt Y aus der Datei Y.class/Y.java einbinden will:
X.java:5: cannot resolve symbol symbol : class Y location: class X Y y = new Y(); ^
oder zur Laufzeit:
Exception in thread "main" java.lang.NoClassDefFoundError:KlassennameDenIhrGeradeKompiliertHabt
- Mann kann das Problem auf zwei Arten lösen:
- man schreibt "java -cp . Klasse" anstatt nur "java Klasse" um sie Auszuführen
- verwendet man die bash: schreibt man export CLASSPATH=$CLASSPATH:. entweder in jeder shell einmal oder in die .bashrc eintragen und die shell mit exec bash neu starten.
- verwendet man die tcsh: schreibt man setenv CLASSPATH ".:$CLASSPATH" entweder in jeder shell oder einmal in der .cshrc eintragen und die shell mit tcsh neu starten.
- Der Fehler bedeutet, dass die Shell-Variable CLASSPATH gesetzt ist. Das hat zur Folge das Java den Standardwert "." (das Verzeichnis in dem man gerade ist) nicht mehr in den CLASSPATH aufnimmt und diese Fehlermeldung auflöst.
Das Katzenproblem beim Aufruf
Exception in thread "main" java.lang.NoClassDefFoundError:KlassennameDenIhrGeradeKompiliertHabt/class
- dann habt ihr das Programm mit "java KlassennameDenIhrGeradeKompiliertHabt.class" aufgerufen, was falsch ist. Man darf hier das "class" nicht an den Befehl anhängen.
Fehlermeldung "unchecked or unsafe operations"
Note: Test.java uses unchecked or unsafe operations. Note: Recompile with -Xlint:unchecked for details.
- Dann könnt ihr die entweder ignorieren, oder aber ihr übergebt den zusätzlichen Parameter an den Java-Compiler (javac -Xlint:unchecked foo.java).
Normalerweise sollte man solche Konstrukte natürlich vermeiden, dazu ist ja die Fehlermeldung da, aber für den Kurs ist das erstmal nicht weiter wichtig.