2009-05-03 38 views
38

有沒有辦法找出自JVM啓動以來的時間?自JVM啓動以來的時間

當然,除了在main開始附近啓動計時器之外,因爲在我的場景中,我正在編寫庫代碼,並且啓動後立即調用某些內容的要求太繁瑣。

回答

61

使用此片段:

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

或:

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

這是檢索JVM運行時間的正確方式。

欲瞭解更多信息請參閱http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html

+2

注意,它返回毫秒的價值,而不是秒。 – 2015-12-09 12:52:42

2

從Java 5開始,你可以使用JMX找到了這一點。檢查「Using the platform MBeanserver」以瞭解更多詳情。你正在尋找的bean是名爲「java.lang:type = Runtime」的bean。 StartTime屬性爲您提供啓動JVM的時間,Uptime屬性告訴您JVM的正常運行時間。

您可以通過執行此代碼獲取到運行時Bean的引用: ManagementFactory.getRuntimeMXBean();

0

也許值得一提的是,如果你不想寫任何代碼從Java bin目錄中運行起來JConsole中,點擊VM摘要並查看正常運行時間和過程CPU時間值。

2

如果你的JVM程序運行Linux,你可以查看開始時間使用PS

ps -p <pid> -o stime,etime