Informationen zur verwendeten Java Version beim Programmstart ausgeben lassen

Thomas Darimont

Erfahrenes Mitglied
Hallo,

manchmal ist es hilfreich zur Analyse eines Java Problems wissen, mit welcher Java Version eine Anwendung ausgeführt wird. Hier mal ein Beispiel wie man diese Information mit Java Boardmitteln auf der Konsole erhalten kann.

Java:
package de.thomasdarimont.labs;

public class DebugExample {
    public static void main(String[] args) {
        System.out.println("Problem...");
    }
}

Wenn wir unsere Java Anwendung wie gewöhnt ausführen sehen wir:
Code:
tom@gauss ~/Documents/dev/repos/labs/de.thomasdarimont.labs.java8
$ java -cp target/classes de.thomasdarimont.labs.DebugExample
Problem...

Jeder kennt natürlich den -version Parameter des Java launchers:
Code:
tom@gauss ~/Documents/dev/repos/labs/de.thomasdarimont.labs.java8 
$ java -version
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)
... damit haben wir leider nicht (direkt) die Möglichkeit die Anwendung gleich mit starten zu lassen...


Zusätzlich gibt es aber auch den (IMHO) weniger bekannten Parameter -showversion:
Code:
tom@gauss ~/Documents/dev/repos/labs/de.thomasdarimont.labs.java8 
$ java -showversion -cp target/classes de.thomasdarimont.labs.DebugExample
java version "1.7.0_40"
Java(TM) SE Runtime Environment (build 1.7.0_40-b43)
Java HotSpot(TM) 64-Bit Server VM (build 24.0-b56, mixed mode)


Problem...
... der genau das macht was wir brauchen, die aktuell tatsächlich von unserer Anwendung verwendete Java Version ausgeben :)


Gruß Tom
 
Hier noch eine Alternative (falls man aus irgendeinem Grund die Aufrufparameter nicht ändern kann / darf und es damit im Javacode ausgeben lassen müsste:

Java:
public class VersionTest {
	public static void main(String[] args) {
		System.out.println(
			"java version \"" + System.getProperty("java.version") + "\"\n" +
		 	System.getProperty("java.runtime.name") + " (build " + System.getProperty("java.runtime.version") + ")\n" +
			System.getProperty("java.vm.name") + " (build " + System.getProperty("java.vm.version") + ", " + System.getProperty("java.vm.info") + ")"
		);
	}
}

Viele Grüße,
MAN
 
Zurück