Information zu OS und Runtime über MBean ausgeben


Früher war die einzige Möglichkeit um Systeminformationen zu erhalten, die Klasse Runtime. In JEE Versionen ab Version 6 kann über die JMX (Java Managment Extension) auf diese Informationen zugegriffen werden. Mit den folgenden Beans kann die verwendete Java-Version, die Startzeit, die Up-Zeit und die Betriebssystemversion ausgegeben werden.

/** Bean für den Zugriff auf OS Werte */
private final OperatingSystemMXBean osBean = ManagementFactory.getOperatingSystemMXBean();
/** Bean für den Zugriff auf Java Runtime Werte Java Version, Update, ...  */
private final RuntimeMXBean runtimeBean = ManagementFactory.getRuntimeMXBean();

Eine Ausgabe der Daten kann über folgende Methoden umgesetzt werden (die Methoden zur Formatierung der Werte sind hier nicht dargestellt).

/** @return Betriebssysteminformationen */
public String getOperatingSystemInfoText() {
    StringBuilder buffer = new StringBuilder();
    buffer.append(this.osBean.getName() + " " + this.osBean.getVersion() + " " + this.osBean.getArch() + "\n");
    buffer.append("Processoren: " + this.osBean.getAvailableProcessors() + " Load Avarage" + this.osBean.getSystemLoadAverage());
    return buffer.toString();
}

/** @return Runtimeinformationen - Java Version, Uptime */
public String getRuntimeInfoText() {
    StringBuilder buffer = new StringBuilder();
    buffer.append(this.runtimeBean.getVmName() + " " + this.runtimeBean.getVmVendor() + " " + this.runtimeBean.getSpecVersion() +
       " -  " + this.runtimeBean.getVmVersion() + "\n");
    buffer.append("Starttime: " + AbstractDateConverter.getDateTimeAsString(new Date(this.runtimeBean.getStartTime())) +
            " Uptime: " + AbstractDateConverter.getTimeSecondsAsString(new Date(this.runtimeBean.getUptime())));
    return buffer.toString();
}

Du hast Fragen oder Anmerkungen? Kontakt: arndt@schoenb.de