2011-06-21 15 views
15

मैंने जावा में एक एप्लीकेशन लिखा है और मैं एप्लिकेशन के अपटाइम की रिपोर्ट करने के लिए एक सुविधा जोड़ना चाहता हूं। क्या JVM में कोई वर्ग/विधि है जो यह कर सकती है?एप्लिकेशन अपटाइम प्राप्त करें

क्या मुझे एप्लिकेशन प्रारंभ होने पर टाइमस्टैम्प को सहेजना चाहिए, फिर अनुरोध के पल में वर्तमान अपटाइम के साथ अंतर की गणना करें?

जावा में एप्लिकेशन अपटाइम पुनर्प्राप्त करने का एक बेहतर तरीका क्या है?

उत्तर

25

आप RuntimeMXBean.getUptime()

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

यह जेएमवी अपटाइम को एक एप्लिकेशन नहीं है। – Kamahire

+1

यह जरूरी नहीं है। जावा ईई संदर्भ में, वे अलग-अलग चीजें हो सकती हैं, लेकिन स्टैंडअलोन अनुप्रयोगों के लिए, रनटाइम अपटाइम और एप्लिकेशन अपटाइम एक ही हैं। –

+0

और जेवीएम वह जगह है जहां आपका एप्लिकेशन चलता है। –

0

उपयोग कर सकते हैं यह सिर्फ हार्टबीट आवेदन की तरह है। जिसमें आपने छोटे एप्लिकेशन को लिखा है जो आपके जावा एप्लिकेशन से संवाद करता है। जब भी आप एप्लिकेशन शुरू करते हैं, आपको फ़ाइल को समय/समय पर फ़ाइल/डेटाबेस में संग्रहीत करना होगा। मॉनिटर एप्लिकेशन चल रहे एप्लिकेशन की जांच करेगा या नहीं। मॉनीटर एप्लिकेशन भी अंत समय का अंतर लेता है और एप्लिकेशन समय के समय को रेत प्रदर्शित करता है।

-3

मुझे पता है कि समाधान System.currentTimeMillis() का उपयोग करना है क्योंकि यह here और here का वर्णन किया गया है। वहाँ भी similar question

+0

वह वह नहीं है जिसे वह ढूंढ रहा है। वह एप्लिकेशन अपटाइम की तलाश में है (एप्लिकेशन कितनी देर चल रहा है)। आपका समाधान वर्तमान समय देगा। –

+1

यदि आप प्रदान किए गए लिंक की जांच करते हैं, तो आप पाएंगे कि 'currentTimeMillis' का उपयोग अनुप्रयोग अपटाइम को मापने के लिए किया जा सकता है, यानी मिलिस में वर्तमान समय से प्रारंभ समय घटाकर। तो अगर हम अपने समाधान के बारे में बात कर रहे हैं, तो यह वर्तमान समय नहीं देगा – nikagra

0

परिणाम है था मिलीसेकेंड में:

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

देखें: ManagementFactory.getRuntimeMXBean() जावाडोक।

संबंधित मुद्दे