2009-05-03 2 views
38

Есть ли способ узнать время с момента запуска JVM?время с момента запуска JVM

Конечно, кроме запуска таймера где-то около начала main, потому что в моем сценарии я пишу библиотечный код и требование, чтобы что-то вызывалось сразу после запуска, является слишком обременительным.

ответ

61

Используйте этот фрагмент кода:

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

или:

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

Это правильный способ получения виртуальной машины Java до времени.

Для получения дополнительной информации см http://java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html

+2

Заметьте, что она возвращает значение в миллисекундах, а не в секундах. –

10

Вы можете получить время начала 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

Начиная с Java 5, вы можете использовать JMX, чтобы это выяснить. Проверьте «Using the platform MBeanserver», чтобы узнать подробности. Боб, который вы ищете, - это bean, называемый «java.lang: type = Runtime». Атрибут StartTime дает вам время запуска JVM и атрибут Uptime указывает время работы JVM.

Вы можете получить ссылку на время выполнения боба, выполнив этот код: ManagementFactory.getRuntimeMXBean();

0

Возможно, стоит отметить, что если вы не хотите, чтобы написать любой код разбегаются JConsole из каталога Java бен и нажмите VM Summary и см. значения времени CPU и времени CPU.

2

если ваша JVM программа в Linux, вы можете просмотреть начальное время использовать пс

ps -p <pid> -o stime,etime