2009-05-03 11 views
38

Gibt es eine Möglichkeit, die Zeit seit dem Start der JVM herauszufinden?Zeit seit JVM gestartet

Natürlich anders als einen Timer irgendwo in der Nähe von Anfang main zu starten, weil ich in meinem Szenario bin Bibliothekscode schreiben und die Anforderung, dass etwas sofort nach dem Start aufgerufen wird, ist zu lästig.

Antwort

61

Mit diesem Code-Schnipsel:

long jvmUpTime = ManagementFactory.getRuntimeMXBean().getUptime(); 

oder:

long jvmStartTime = ManagementFactory.getRuntimeMXBean().getStartTime(); 

Dies ist die richtige Weise JVM des Abrufens up-Zeit.

Für weitere Informationen siehe http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html

+2

verwenden Hinweis sehen, dass es einen Wert in Millisekunden zurück, nicht Sekunden. –

2

Ausgehend von Java 5 können Sie verwenden JMX, um das herauszufinden. Überprüfen Sie "Using the platform MBeanserver" um mehr Details zu erfahren. Die Bean, nach der Sie suchen, ist die Bean "java.lang: type = Runtime". Das Attribut StartTime gibt Ihnen die Zeit, zu der die JVM gestartet wurde, und das Uptime-Attribut teilt Ihnen die Betriebszeit der JVM mit.

Sie einen Verweis auf die Runtime-Bean bekommen können diesen Code durch die Ausführung: ManagementFactory.getRuntimeMXBean();

0

Vielleicht erwähnenswert, dass, wenn Sie nicht Code ausführen bis jconsole aus dem Java-bin-Verzeichnis schreiben möchten und klicken Sie auf VM Zusammenfassung und sehen Sie die Uptime und Process CPU Zeitwerte.

2

wenn Ihr Jvm Programm unter Linux läuft, können Sie die Startzeit ps

ps -p <pid> -o stime,etime 
Verwandte Themen