# Java Version ermitteln (über System.getProperty hinaus)



## Krabat (4. Sep 2006)

Bei der Ausführung von Java Programmen wurde dieser Bytecode mit einer bestimmten Java Version kompiliert. Dadurch entsteht eine Abhängigkeit, die diese Java Version auf dem Zielsystem voraussetzt, richtig? Wie ist es nun möglich beim Start des Programms zu prüfen, ob die installierte JRE den Anforderungen der erstellenden Java Version genügt? Und das  eine benutzerdefinierte Fehlermeldung erscheint, falls die Ausführung aufgrund der Version fehlschlägt und nicht nur eine kryptische Fehlermeldung des JRE.
Sollte überhaupt kein Java installiert sein, gibt es vermutlich keine Möglichkeit dies platformunabhängig zu prüfen, oder?

[Edit:]
Bisher schwebt mir so etwas vor wie eine Miniprogramm, welches mit _System.getProperty("java.version")_ die aktuelle Version ermittelt, selbst mit Java 1.0 (?) kompiliert wurde und einen classloader für alle folgenden Klassen besitzt/nutzt? Was denkt Ihr?


----------



## The_S (4. Sep 2006)

Entweder das



			
				Krabat hat gesagt.:
			
		

> [Edit:]
> Bisher schwebt mir so etwas vor wie eine Miniprogramm, welches mit _System.getProperty("java.version")_ die aktuelle Version ermittelt, selbst mit Java 1.0 (?) kompiliert wurde und einen classloader für alle folgenden Klassen besitzt/nutzt? Was denkt Ihr?



oder ein externes Programm, welches nicht in Java geschrieben ist. Oder ein Kommandozeilen-Tool (brauchst dann halt eines für jede Plattform), welches mit java -version die Version überprüft (bzw. nen Fehler liefert, wenn es java und somit die JRE) nicht findet.


----------



## Krabat (5. Sep 2006)

Dank Dir für die Antwort. Ist es nicht ein allgemeines Problem? Wie wird denn normalerweise damit umgegangen? Kommt schon ein bischen lahm, wenn jemand Dein Prog runterlädt, ausführt und nur ein kryptischer Fehler kommt, weil die dort installierte VM zu alt ist...


----------



## AlArenal (5. Sep 2006)

Krabat hat gesagt.:
			
		

> Dank Dir für die Antwort. Ist es nicht ein allgemeines Problem? Wie wird denn normalerweise damit umgegangen? Kommt schon ein bischen lahm, wenn jemand Dein Prog runterlädt, ausführt und nur ein kryptischer Fehler kommt, weil die dort installierte VM zu alt ist...



Man nennt das "Systemvoraussetzungen" und das findet man allerorten und man definiert es, damit potenzielle Benutzer vorher abklären können, ob eine Software auf ihrer Mühle wohl lauffähig sein wird bzw. was sie tun müssen, damit das der Fall ist.


----------



## Krabat (5. Sep 2006)

AlArenal hat gesagt.:
			
		

> Man nennt das "Systemvoraussetzungen" und das findet man allerorten und man definiert es, damit potenzielle Benutzer vorher abklären können, ob eine Software auf ihrer Mühle wohl lauffähig sein wird bzw. was sie tun müssen, damit das der Fall ist.



Das mag so sein, nur ist es für den _normalen_ user ein weitaus größerer Aufwand, zusätzlich eine VM zu installieren (von dem Umstand der absoluten Unübersichtlichkeit auf der sun homepage mal ganz abgesehen), statt nur zu schauen, ob genügend RAM vorhanden ist. Bei .NET empfinde ich das im übrigen genauso.
Oder es ist halt eine detailierte Anleitung mitzugeben, was wiederrum abschreckt. Besser wäre daher eine automatische Prüfung (+Installation?).


----------



## Bert Brenner (5. Sep 2006)

Ich schicke Benutzer nicht auf die Seite von Sun sondern auf www.java.com, da ist das wesentlich einfacher zu finden.


----------



## Krabat (5. Sep 2006)

Bert Brenner hat gesagt.:
			
		

> Ich schicke Benutzer nicht auf die Seite von Sun sondern auf www.java.com, da ist das wesentlich einfacher zu finden.



Das stimmt, finde diese Seite auch übersichtlicher, als ich noch java noob war hätte ich mir sowas gewünscht.
Ein Sache finde ich nur seltsam: auf java.com wird noch immer das update 6 von der JRE angeboten, aber update 8 ist doch bereits erhältlich...?


----------

