*Markus: @Override funktioniert nach Java-Update zu V5 noch immer nicht

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.

--
http://www.apostrophitis.at
Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht Strucktur
  1. 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

    1. 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.

      --
      http://www.apostrophitis.at
      Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht Strucktur
      1. 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

        --
        Warum nennt sich Andreas hier MudGuard?
        Schreinerei Waechter
        O o ostern ...
        Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
        1. 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/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.

          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.

          --
          http://www.apostrophitis.at
          Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht Strucktur
          1. 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

            --
            Warum nennt sich Andreas hier MudGuard?
            Schreinerei Waechter
            O o ostern ...
            Fachfragen unaufgefordert per E-Mail halte ich für unverschämt und werde entsprechende E-Mails nicht beantworten. Für Fachfragen ist das Forum da.
            1. 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.

              --
              http://www.apostrophitis.at
              Maschiene währe Standart Gallerie vorraus Packete Objeckte tollerant vieleicht Strucktur
              1. 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/

                --
                Linux is like a wigwam - no windows, no gates and an Apache inside!
                Selfcode: ie:{ fl:| br:> va:} ls:< fo:} rl:( n4:( ss:) de:> js:| ch:? sh:| mo:) zu:)