Вопрос

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

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

Это было полезно?

Решение

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

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

Другие советы

Вы можете узнать время запуска 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 / документы / API / Java / языки / управление / RuntimeMXBean.html

если ваша jvm-программа работает в linux, вы можете просмотреть startTime, используя ps

ps -p <pid> -o stime,etime 

Начиная с Java 5, вы можете использовать JMX, чтобы это выяснить. Проверьте " использование платформы MBeanserver " ; чтобы узнать больше деталей. Bean-компонент, который вы ищете, называется "java.lang: type = Runtime". Атрибут StartTime показывает время, когда JVM была запущена, а атрибут Uptime указывает время работы JVM.

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

Возможно, стоит упомянуть, что если вы не хотите писать какой-либо код, запустите jconsole из каталога java bin, нажмите Сводная информация о виртуальной машине и посмотрите значения времени работы и времени ЦП.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top