2011-06-21 11 views
15

Napisałem aplikację w języku Java i chcę dodać funkcję do raportowania czasu pracy aplikacji. Czy w maszynie JVM istnieje klasa/metoda, która może to zrobić?Uzyskaj czas działania aplikacji

Czy należy zapisać znacznik czasu po uruchomieniu aplikacji, a następnie obliczyć różnicę z bieżącym czasem dostępności w momencie żądania?

Jaki jest lepszy sposób na odzyskanie czasu pracy aplikacji w Javie?

Odpowiedz

25

Można użyć RuntimeMXBean.getUptime()

RuntimeMXBean rb = ManagementFactory.getRuntimeMXBean(); 
long uptime = rb.getUptime(); 
+0

To jest czas działania JVM, a nie aplikacja. – Kamahire

+1

To niekoniecznie jest inne. W kontekście Java EE mogą to być różne rzeczy, ale w przypadku samodzielnych aplikacji czas pracy bez przestojów i czas pracy aplikacji są takie same. –

+0

, a jvm to miejsce, w którym działa aplikacja. –

0

To jest tak jak stosowanie Heartbeat. W którym napisałeś małą aplikację, która komunikuje się z aplikacją java. Za każdym razem, gdy uruchamiasz aplikację, musisz przechowywać czas z datą w pliku/bazie danych. Aplikacja monitorująca sprawdzi czy aplikacja działa, czy też nie. Aplikacja monitorująca również zmienia czas zakończenia, a czas rozpoczęcia wyświetla czas aplikacji.

-3

Rozwiązaniem, które znam, jest użycie System.currentTimeMillis(), jak to opisano: here i here. Nie było również similar question

+0

Nie tego szuka. Szuka czasu pracy aplikacji (jak długo działa aplikacja). Twoje rozwiązanie podaje aktualny czas. –

+1

Po sprawdzeniu podanych linków okazało się, że 'currentTimeMillis' może być używany do pomiaru czasu działania aplikacji, tj. Odejmując czas rozpoczęcia od bieżącego czasu w milisekundach. Więc jeśli mówimy o moim rozwiązaniu, nie da to aktualnego czasu – nikagra

Powiązane problemy