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