Java Version Info



  • Ich kann über
    java.lang.System.getProperty("java.version")
    die aktuelle Java-Version des Systems erfragen.

    Ist es möglich aus meinem Programm heraus zu erfragen
    unter welcher Version das Programm compiliert wurde, hart verdrahten möchte ich es nicht ?

    Kann ich Feststellen ob die compile-Version auf dem Rechner installiert ist ?

    Kann ich vielleicht sogar mit einem kleinen Programm die aktuelle Version umstellen ?

    Ich möchte gern mindestens eine Meldung ausgeben wenn die Java-Version auf dem
    Zielrechner nicht der entspricht die für das Programm benötigt wird.

    Wie macht ihr das ?



  • Hi,

    ähm, das Javaprogramm wird, so viel ich weiß, gar nicht erst auf dem Rechner ausgeführt, wenn du z.B. unter 1.5 compiliert hast aber nur 1.4 auf dem Zielrechner installiert ist. Und wenn du unter 1.4 compiliert hast und 1.6 installiert ist, braucht man ja gar keine Meldung ausgeben, weils ja dann läuft.

    Grüßle
    Jan



  • In der .class-Datei stellen das 5. und 6. Byte Minor- und Major-Versionsnummern der .class-Datei dar. Damit kommst du zumindest mal in die Nähe dessen was du willst.



  • Ich habe meine .class Datei mal mit einem Hex-Editor geöffnet
    leider steht da
    ca fe ba be 00 00 00 32 03 96 07 00 02 01 00 1c

    1. Ist da die Java-Version mit drin ?
    2. Wie würde ich das vom Programm aus auslesen ?

    Danke und Grüße



  • 0xCAFEBABE ist immer gleich, der kennzeichnet nen class file. die folgenden 4 byte sollten eigentlich deine version beinhalten. dass die allerdings alle null sind, wundert mich etwas 😃


  • Mod

    thordk schrieb:

    0xCAFEBABE ist immer gleich, der kennzeichnet nen class file. die folgenden 4 byte sollten eigentlich deine version beinhalten. dass die allerdings alle null sind, wundert mich etwas 😃

    Hast Dich verguckt. 🙂 Davon sind nur 3 Byte 0.



  • Gregor schrieb:

    thordk schrieb:

    0xCAFEBABE ist immer gleich, der kennzeichnet nen class file. die folgenden 4 byte sollten eigentlich deine version beinhalten. dass die allerdings alle null sind, wundert mich etwas 😃

    Hast Dich verguckt. 🙂 Davon sind nur 3 Byte 0.

    ups, hast recht *G



  • Danke für die Info
    also habe ich als Versionskennung 00 00 00 32,
    das sagt mir allerdings nicht viel
    was bedeutet 32 Welche Zahlen haben andere Java Versionen
    und wie bekomme ich aus dem Laufenden Code die Information über die 32 ?


Anmelden zum Antworten