@Override funktioniert nach Java-Update zu V5 noch immer nicht
*Markus
- java
Hallo,
Gerade eben machte ich ein Update des Java-JDKs zu 1.5.0.07, wobei meine JRE in Version 1.5.0.06 vorhanden ist. Sowohl java -version, als auch java-config -L zeigt mir 1.5.0.07 an.
Dennoch bekomme ich bei den bei Override-Direktiven des folgenden Programms aus "Java ist auch eine Insel", die es seit Java 5 gibt, eine "unresolved Exception":
import java.awt.*;
import java.awt.event.*;
public class Biene extends Frame {
public Biene() {
setSize( 500, 100 );
addWindowListener( new WindowAdapter() {
@Override
public void windowClosing ( WindowEvent e ) { System.exit( 0 ); }
} );
}
@Override
public void paint( Graphics g ) {
g.drawString( "\"Maja, wo bist du?\" (Mittermeier)", 120, 60 );
}
public static void main(String[] args) {
new Biene().setVisible(true);
}
}
Der über der "Eclipse-Konsole" befindliche Pfad im Programm scheint auch zu stimmen (/opt/sun-jre-bin-1.5.0.06/bin/java)
Was läuft hier also falsch?
Markus.
Hallo,
Dennoch bekomme ich bei den bei Override-Direktiven des folgenden Programms aus "Java ist auch eine Insel", die es seit Java 5 gibt, eine "unresolved Exception":
Wie lautet die Exception genau? Wie lautet der Stacktrace?
Der über der "Eclipse-Konsole" befindliche Pfad im Programm scheint auch zu stimmen (/opt/sun-jre-bin-1.5.0.06/bin/java)
Was sagt denn Eclipse zu deinem Code? Ich hatte eigentlich noch nie
den Fall, daß ein von Eclipse akzeptierter Code dann in der JRE nicht
ordentlich läuft. (Außer natürlich es wurde eine falsche JRE im Projekt
eingerichtet, die nicht zu den Java-Kompatibilitätseinstellung vom
Projekt gepasst haben.) Ich nehme an, daß dein Programm ein anderes
Problem hat, das nicht mit dem @override zusammenhängt.
Wenn du mal die genaue Exception mitteilst, könnte man mal weiterschauen.
Gruß
Slyh
Hallo,
Was sagt denn Eclipse zu deinem Code? Ich hatte eigentlich noch nie
den Fall, daß ein von Eclipse akzeptierter Code dann in der JRE nicht
ordentlich läuft. (Außer natürlich es wurde eine falsche JRE im Projekt
eingerichtet, die nicht zu den Java-Kompatibilitätseinstellung vom
Projekt gepasst haben.) Ich nehme an, daß dein Programm ein anderes
Problem hat, das nicht mit dem @override zusammenhängt.
Offensichtlich hattest du recht, aber ich verstehe trotzdem nicht, was hier schief lief.
Um ganz sicher zu gehen und Eclipse auszuschließen, führte ich "javac Biene.java" von der Konsole aus, wobei ich ebenfalls ein "'class' or 'interface' expected" bekam, obwohl ich 100%ig keine Klammern o.a. vergaß. Nebenbei holte ich mir auch die neueste Eclipse-Version, wo der Fehler zuerst auch auftrat. Eclipse bot aber an, irgendwas beim Compiler umzustellen, wodurch es endlich funktionierte.
Warum es aber zuerst von der Bash aus nicht funktionierte, bleibt mir ein Rätsel. Jetzt geht's auch von der Bash aus.
Es gibt etwas, was mich noch immer etwas stutzig macht. Beim Kompilieren von Eclispe las ich unter anderem diese Meldung:
Compiling source in /var/tmp....usw
* Using bootclasspath /opt/sun-jdk-1.4.2.10/jre/lib/rt.jar:/opt/sun-jdk-1.4.2.10/jre/lib/jsse.jar
* Using JVM library path /opt/sun-jdk-1.4.2.10/jre/lib/i386
Was hat das zu bedeuten? Wieso werden hier irgendwie alte Versionen von JDK benutzt, obwohl mein SDK und meine JVM in der Version 1.5 sind?
Ich wollte schon all die alten Versionen (blackdown jre+jvm,...) einfach weglöschen, aber wenn ich plötzlich lese, dass Java noch irgendetwas aus diesen Verzeichnissen bezieht (obwohl javac und java 1.5.0_07 anzeigt), habe ich Zweifel, ob ich damit nichts beschädige?
Markus.
Hi,
Offensichtlich hattest du recht, aber ich verstehe trotzdem nicht, was hier schief lief.
Wieso redest Du eigentlich von einer Exception, wenn es gar nicht um eine Exception geht, sondern um Fehlermeldungen beim Compilieren?
Um ganz sicher zu gehen und Eclipse auszuschließen, führte ich "javac Biene.java" von der Konsole aus, wobei ich ebenfalls ein "'class' or 'interface' expected" bekam, obwohl ich 100%ig keine Klammern o.a. vergaß. Nebenbei holte ich mir auch die neueste Eclipse-Version, wo der Fehler zuerst auch auftrat. Eclipse bot aber an, irgendwas beim Compiler umzustellen, wodurch es endlich funktionierte.
Warum es aber zuerst von der Bash aus nicht funktionierte, bleibt mir ein Rätsel. Jetzt geht's auch von der Bash aus.
Es gibt etwas, was mich noch immer etwas stutzig macht. Beim Kompilieren von Eclispe las ich unter anderem diese Meldung:
Compiling source in /var/tmp....usw
* Using bootclasspath /opt/sun-jdk-1.4.2.10/jre/lib/rt.jar:/opt/sun-jdk-1.4.2.10/jre/lib/jsse.jar
* Using JVM library path /opt/sun-jdk-1.4.2.10/jre/lib/i386
Dein Eclipse ist also so eingestellt, daß zum Übersetzen die 1.4.2.10 benutzt wird.
Diese kennt natürlich die Features von 1.5 nicht, daher gibt es dann konsequenterweise Fehlermeldungen beim Compilieren.
(da ich hier kein Eclipse installiert hab - nur im Büro - kann ich Dir jetzt nicht sagen, wo das genau umzustellen ist)
Ich wollte schon all die alten Versionen (blackdown jre+jvm,...) einfach weglöschen, aber wenn ich plötzlich lese, dass Java noch irgendetwas aus diesen Verzeichnissen bezieht (obwohl javac und java 1.5.0_07 anzeigt), habe ich Zweifel, ob ich damit nichts beschädige?
Solange das noch benutzt wird, solltest Du es nicht weglöschen.
cu,
Andreas
Hallo,
Compiling source in /var/tmp....usw
* Using bootclasspath /opt/sun-jdk-1.4.2.10/jre/lib/rt.jar:/opt/sun-jdk-1.4.2.10/jre/lib/jsse.jar
* Using JVM library path /opt/sun-jdk-1.4.2.10/jre/lib/i386Dein Eclipse ist also so eingestellt, daß zum Übersetzen die 1.4.2.10 benutzt wird.
Diese kennt natürlich die Features von 1.5 nicht, daher gibt es dann konsequenterweise Fehlermeldungen beim Compilieren.
Wie kann eine Neuinstallation irgendwelche Voreinstellungen haben, oder anders ausgedrückt: Wie um Himmels Willen kommt das Installationsscript von Eclipse bei der Erstinstallation darauf, jdk-1.4.2.10 zu nutzen, obwohl java und javac bereits mit 1.5 liefen.
Außerdem redete ich hier vom Installationsvorgang der neuesten Version von Eclipse und nicht vom Programm, das ich kompilieren wollte.
Dass ein 1.4-Compiler nichts mit 1.5-Features anfangen kann, ist ja wohl klar.
Markus.
Hi,
Wie kann eine Neuinstallation irgendwelche Voreinstellungen haben,
Weil für jede Einstellung ein Default-Wert existiert.
oder anders ausgedrückt: Wie um Himmels Willen kommt das Installationsscript von Eclipse bei der Erstinstallation darauf, jdk-1.4.2.10 zu nutzen, obwohl java und javac bereits mit 1.5 liefen.
Um bei den compilierten Programmen eine höhere Kompabilität zu erreichen?
Da für 1.4 compilierte Klassen auch auf 1.5er VMs benutzt werden können, für 1.5 compilierte Klassen aber nicht auf 1.4er VMs genutzt werden können, finde _ich_ das gar nicht so schlecht. Wenn jemand bewußt 1.4er VMs nicht bedienen will, steht es ihm ja frei, die Einstellung zu ändern.
cu,
Andreas
Hi,
das verwirrt mich etwas. Der Quellcode von Eclipse ändert sich ja nicht deswegen, nur weil ich 1.5 statt 1.4 verwende. Folglich verstehe ich auch nicht, welche Kompatibilitätsschwierigkeiten es zu irgendwelchen Programmen geben sollte?
Hätte ich Java zum ersten Mal installiert, und gleich die 1.5er-Version, so hätte das Installationsscript von Eclipse auch keine ältere Version als Alternative gehabt. Was wäre dann passiert? Es geht ja jetzt nicht um die Programme, die ich mal damit schreibe, sondern alleine um Eclipse.
Markus.
Hallo *Markus,
das verwirrt mich etwas. Der Quellcode von Eclipse ändert sich ja nicht deswegen, nur weil ich 1.5 statt 1.4 verwende. Folglich verstehe ich auch nicht, welche Kompatibilitätsschwierigkeiten es zu irgendwelchen Programmen geben sollte?
Hätte ich Java zum ersten Mal installiert, und gleich die 1.5er-Version, so hätte das Installationsscript von Eclipse auch keine ältere Version als Alternative gehabt. Was wäre dann passiert? Es geht ja jetzt nicht um die Programme, die ich mal damit schreibe, sondern alleine um Eclipse.
Du musst in Eclipse immer das entsprechende JDK auswählen. Zusätzlich musst du in den Compiler-Einstellungen angeben, dass du nun den 1.5-Modus verwendest.
Dann sollte eigentlich alles so klappen, wie du es möchtest. (Übrigens hatte Eclipse bei mir auch das 1.4.2 JDK genommen - da habe ich einfach das 1.5.0 JDK ausgewählt und das 1.4.2er aus Eclipse herausgenommen).
Grüße
Marc Reichelt || http://www.marcreichelt.de/