2011-06-21 32 views
15

Tôi đã viết một ứng dụng bằng java và tôi muốn thêm một tính năng để báo cáo thời gian hoạt động của ứng dụng. Có một Class/phương pháp trong JVM có thể làm điều này?Nhận thời gian hoạt động của ứng dụng

Tôi có nên lưu dấu thời gian khi ứng dụng bắt đầu, sau đó tính toán sự khác biệt với thời gian hoạt động hiện tại trong thời điểm yêu cầu không?

Cách nào tốt hơn để truy xuất thời gian hoạt động của ứng dụng trong Java?

Trả lời

25

Bạn có thể sử dụng RuntimeMXBean.getUptime()

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

Nó được retuens JVM thời gian hoạt động không phải là một ứng dụng. – Kamahire

+1

Điều đó không nhất thiết khác nhau. Trong bối cảnh Java EE, chúng có thể là những thứ khác nhau, nhưng đối với các ứng dụng độc lập, thời gian hoạt động của thời gian chạy và thời gian hoạt động của ứng dụng là giống nhau. –

+0

và jvm là nơi ứng dụng của bạn chạy. –

0

Nó cũng giống như ứng dụng Heartbeat. Trong đó Bạn có viết ứng dụng nhỏ giao tiếp với ứng dụng java của bạn. Bất cứ khi nào Bạn bắt đầu ứng dụng, bạn phải lưu trữ thời gian với ngày trong tệp/cơ sở dữ liệu. Ứng dụng giám sát sẽ kiểm tra ứng dụng đang chạy hay không. Ứng dụng màn hình cũng có sự khác biệt về thời gian kết thúc và cát bắt đầu hiển thị thời gian ứng dụng.

-3

Giải pháp tôi biết là sử dụng System.currentTimeMillis() vì được mô tả herehere. Ngoài ra còn là similar question

+0

Đó không phải là những gì anh ấy đang tìm kiếm. Anh ấy đang tìm kiếm thời gian hoạt động của ứng dụng (thời gian ứng dụng đang chạy). Giải pháp của bạn sẽ cho thời gian hiện tại. –

+1

Nếu bạn kiểm tra các liên kết được cung cấp, bạn sẽ thấy rằng 'currentTimeMillis' có thể được sử dụng để đo thời gian hoạt động của ứng dụng, tức là bằng cách trừ thời gian bắt đầu từ thời gian hiện tại theo millis. Vì vậy, nếu chúng ta đang nói về giải pháp của tôi, nó sẽ không cho thời gian hiện tại – nikagra

0

Kết quả là trong mili giây:

RuntimeMXBean mxBean = ManagementFactory.getRuntimeMXBean(); 
System.out.println(mxBean.getUptime()); 

Xem: ManagementFactory.getRuntimeMXBean() javadoc.

Các vấn đề liên quan