JVM开始以来的时间

时间:2009-05-03 19:32:07

标签: java time jvm

有没有办法找出自JVM启动以来的时间?

当然,除了在main的开头附近启动计时器之外,因为在我的场景中我正在编写库代码,并且要求在启动后立即调用某些东西是太麻烦。

5 个答案:

答案 0 :(得分:76)

使用此代码段:

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

答案 1 :(得分:12)

您可以使用以下代码获取JVM的开始时间:

import java.lang.management.ManagementFactory;
  import java.lang.management.RuntimeMXBean;
  ...
  RuntimeMXBean runtimeMXBean = ManagementFactory.getRuntimeMXBean();
  long uptimeInMillis = runtimeMXBean.getUptime();

查看更多内容http://java.sun.com/javase/6/docs/api/java/lang/management/RuntimeMXBean.html

答案 2 :(得分:3)

如果你的jvm程序在linux上运行,你可以查看startTime使用 ps

ps -p <pid> -o stime,etime 

答案 3 :(得分:2)

从Java 5开始,您可以使用JMX来查找它。查看“Using the platform MBeanserver”以了解更多详情。您正在寻找的bean是名为“java.lang:type = Runtime”的bean。 StartTime属性为您提供了JVM启动的时间,Uptime属性告诉您JVM的正常运行时间。

您可以通过执行以下代码获取对Runtime bean的引用: ManagementFactory.getRuntimeMXBean();

答案 4 :(得分:0)

或许值得一提的是,如果您不想编写任何代码,请从java bin目录运行jconsole,然后单击VM Summary并查看Uptime和Process CPU时间值。