Ответ 1
Вы можете использовать RuntimeMXBean.getUptime()
RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
long uptime = rb.getUptime();
Я написал приложение в java, и я хочу добавить функцию, чтобы сообщать о времени работы приложения. Есть ли класс/метод в JVM, который может это сделать?
Следует ли сохранить временную метку при запуске приложения, а затем рассчитать разницу с текущим временем безотказной работы в момент запроса?
Какой лучший способ получить время работы приложения в Java?
Вы можете использовать RuntimeMXBean.getUptime()
RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean();
long uptime = rb.getUptime();
Это похоже на приложение Heartbeat. IN, в котором вы пишете небольшое приложение, которое связывается с вашим java-приложением. Всякий раз, когда вы запускаете приложение, вы должны хранить время с датой в файле/базе данных. Приложение Monitor проверяет запущенное приложение или нет. Приложение монитора также имеет разницу между временем окончания и временем начала песка, отображающим время приложения.
Результат в миллисекундах:
RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean();
System.out.println(mxBean.getUptime());
Смотрите: ManagementFactory.getRuntimeMXBean() javadoc.
Я знаю, что это решение использовать System.currentTimeMillis()
, как описано здесь и здесь. Также был аналогичный вопрос