ऐसा करने के कई तरीके हैं। आप उपयोग कर सकते हैं java.lang.ProcessBuilder
और "pgrep" की तरह कुछ के साथ प्रक्रिया आईडी (पीआईडी) प्राप्त करने के लिए: pgrep -fl java | awk {'print $1'}
। या, यदि आप लिनक्स के तहत चल रहे हैं, तो आप /proc
निर्देशिका को क्वेरी कर सकते हैं ।
मुझे पता है, यह भयानक और गैर पोर्टेबल लगता है, और यहां तक कि खराब तरीके से कार्यान्वित किया जाता है, मैं सहमत हूं। लेकिन क्योंकि जावा वास्तव में एक वीएम में चलता है, कुछ बेतुके कारणों से कि मैं वास्तव में अधिक समय के बाद पता नहीं लगा सकता कि 15 साल तक जेडीके काम कर रहा है, यही कारण है कि जेवीएम अंतरिक्ष के बाहर चीजों को देखना संभव नहीं है, यह वास्तव में आपके साथ हास्यास्पद है। इसके बारे में सोचो। आप सब कुछ और कुछ कर सकते हैं, यहां तक कि fork
और join
बच्चे प्रक्रियाओं (उन मल्टीटास्किंग जब दुनिया के बारे में पता नहीं था की एक भयानक तरीका थे धागे या pthreads , क्या एक नरक! क्या जावा के साथ पर में हो रहा है ?! :)।
इससे मुझे पता चल जाएगा कि मुझे बहुत अधिक चर्चा है, लेकिन वैसे भी, एक बहुत अच्छा एपीआई है जिसे मैंने पहले ही अपनी परियोजनाओं में इस्तेमाल किया है और यह काफी स्थिर है ( यह ओएसएस है इसलिए आपको अभी भी एपीआई पर भरोसा करने से पहले आपके द्वारा उपयोग किए जाने वाले हर संस्करण का परीक्षण करने की आवश्यकता है ): https : //github.com/jezhumble/javasysmon
JavaDoc: http://jezhumble.github.io/javasysmon/ , वर्ग के लिए खोज करें com.jezhumble.javasysmon.OsProcess
, वह ट्रिक करेगी। आशा है कि यह मदद की, भाग्य का सबसे अच्छा।