Domanda

C'è un modo per scoprire l'ora dall'avvio della JVM?

Naturalmente, a parte l'avvio di un timer da qualche parte vicino all'inizio di main , perché nel mio scenario sto scrivendo il codice della libreria e il requisito che qualcosa da chiamare immediatamente dopo l'avvio è troppo oneroso.

È stato utile?

Soluzione

Usa questo frammento:

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

o

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

Questo è il modo corretto per recuperare l'uptime di JVM.

Per ulteriori informazioni, consultare http: //java.sun.com/j2se/1.5.0/docs/api/java/lang/management/RuntimeMXBean.html

Altri suggerimenti

È possibile ottenere l'ora di inizio della JVM nel seguente codice:

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

Altre informazioni sono http: // java .sun.com / JavaSE / 6 / docs / api / java / lang / gestione / RuntimeMXBean.html

se il tuo programma jvm è in esecuzione su Linux, puoi visualizzare startTime usando ps

ps -p <pid> -o stime,etime 

A partire da Java 5, è possibile utilizzare JMX per scoprirlo. Controlla " Uso della piattaforma MBeanserver " ; per scoprire maggiori dettagli. Il bean che stai cercando è il bean chiamato " java.lang: type = Runtime " ;. L'attributo StartTime indica l'ora in cui è stata avviata la JVM e l'attributo Uptime indica il tempo di attività della JVM.

È possibile ottenere un riferimento al bean Runtime eseguendo questo codice: ManagementFactory.getRuntimeMXBean ();

Forse vale la pena ricordare che se non si desidera scrivere alcun codice, avviare jconsole dalla directory java bin e fare clic su Riepilogo VM e vedere i valori di tempo di CPU Uptime e Process.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top