2008-09-15 10 views
44

जब जावा आधारित एप्लिकेशन विंडोज मशीन पर गलत व्यवहार करना शुरू कर देता है, तो आप सामान्य रूप से एप्लिकेशन को छोड़ नहीं सकते हैं, तो आप टास्क मैनेजर में प्रक्रिया को मारने में सक्षम होना चाहते हैं । ज्यादातर समय, मेरी मशीन पर एक से अधिक जावा आधारित एप्लिकेशन चल रहा है। क्या उम्मीद है कि आप अंततः सही एप्लिकेशन को हिट करेंगे, उम्मीद है कि java.exe प्रक्रियाओं को यादृच्छिक रूप से मारने का कोई बेहतर तरीका है?विंडोज मशीन पर कौन सी java.exe प्रक्रिया को मारने के लिए जानना

संपादित करें: उन सभी लोगों के लिए धन्यवाद जिन्होंने मुझे साइंसिनल प्रोसेस एक्सप्लोरर की ओर इशारा किया - वास्तव में जो मैं ढूंढ रहा हूं!

उत्तर

32

Sysinternal's Process Explorer डाउनलोड करें। यह एक टास्क मैनेजर विंडोज के अपने प्रबंधक से ज्यादा शक्तिशाली है।

इसकी एक विशेषता यह है कि आप प्रत्येक प्रक्रिया का उपयोग कर रहे सभी संसाधनों को देख सकते हैं (जैसे रजिस्ट्री कुंजियां, हार्ड डिस्क निर्देशिका, नामित पाइप आदि)। इसलिए, संसाधनों को ब्राउज़ करना कि प्रत्येक java.exe प्रक्रिया में आपको यह निर्धारित करने में मदद मिल सकती है कि आप किसको मारना चाहते हैं। मैं आमतौर पर एक निश्चित लॉग फ़ाइल निर्देशिका का उपयोग कर उस व्यक्ति की तलाश करके पता लगाता हूं।

+3

प्रक्रिया एक्सप्लोरर आपको वह आदेश भी दिखा सकता है जिसने java.exe प्रक्रिया शुरू की है। इसमें आम तौर पर जार फ़ाइल या कक्षा का नाम शामिल होगा। –

+0

क्या लिनक्स (उबंटू) के लिए एक समान उपकरण उपलब्ध है? – Ivan

+0

@ इवान मुझे लगता है कि 'htop' नौकरी कर सकता है। – Melebius

6

क्या आपने SysInternals से प्रोसेस एक्सप्लोरर का उपयोग करने का प्रयास किया है? यह प्रक्रिया के भीतर क्या चल रहा है इसका एक बेहतर विचार देता है। यहां मुफ्त ऑनलाइन उपलब्ध है: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

1

मैं Sysinternals से प्रोसेस एक्सप्लोरर डाउनलोड करने और विभिन्न java.exe प्रक्रियाओं को अधिक निकटता से देखने का सुझाव दूंगा, इस तरह आप एक बेहतर विचार प्राप्त कर सकते हैं कि किसको मारना है।

http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

यह बहुत सहज है और आप java.exe प्रक्रियाओं और राइट क्लिक पाते हैं और उनके गुणों गोटो कर सकते हैं, तो आप अपने आदेश पंक्ति, निर्माण के समय, आदि देख सकते हैं वहाँ से आप इस प्रक्रिया को खोजने में मदद कर सकते हैं जो आप मारना चाहते हैं।

उम्मीद है कि यह मदद करता है।

1

ProcessExplorer का उपयोग करके और जावा प्रक्रिया पर होवर करने से कमांड लाइन दिखाई देगी।

4

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

1

यदि एप्लिकेशन बिल्कुल प्रतिक्रिया नहीं दे रहा है, तो प्रक्रिया एक्सप्लोरर एक अच्छा विकल्प है।

यदि यह प्रतिक्रिया दे रहा है, लेकिन मर नहीं रहा है, कभी-कभी कार्य प्रबंधक लाता है, और फिर जावा प्रक्रिया पर एक और संवाद ले जाने से आपको एक सुराग मिल जाएगा। जावा प्रक्रिया जो सीपीयू चक्र को फिर से निकालने के लिए ले रही है वह वह है जिसे आप ढूंढ रहे हैं।

2

यदि आप सॉफ्टवेयर विकसित कर रहे हैं: जावा-लॉन्चर का उपयोग करें। मैंने अपने कुछ एप्लिकेशन [Exe4j] [http://www.ej-technologies.com/products/exe4j/overview.html] के लिए उपयोग किया और यह बहुत अच्छी तरह से काम किया। जब एप्लिकेशन प्रारंभ होता है, तो यह विंडोज़ मैनेजर मैनेजर में "myserverapp.exe" या "myapp" उदाहरण के लिए सूचीबद्ध है। अन्य लोहे भी हैं (उन्हें दिल से नहीं जानते), उनमें से कुछ भी मुफ्त में हो सकते हैं।

7

जेडीके में जेपीएस का उपयोग करके आपको और जानकारी मिल जाएगी। अधिक जानकारी -m, -l और -v विकल्पों के साथ प्रदर्शित होती है।

+0

जेपीएस महान है। यह समाधान आपको एक ऐसी स्क्रिप्ट में प्रासंगिक जावा प्रक्रियाओं को मारने की अनुमति देगा जो प्रक्रिया एक्सप्लोरर नहीं करेगा। –

1

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

उदाहरण के लिए, क्लाइंट-सर्वर ऐप में, सर्वर अधिक मेमोरी का उपयोग करेगा, अधिक थ्रेड होगा, और अधिक CPU समय का उपयोग किया है क्योंकि यह लंबे समय से चल रहा है। यदि आप एक प्रक्रिया को मार रहे हैं क्योंकि यह अटक गया है, तो बस अभी और अधिक CPU का उपयोग कर रहा है।

MAX जावा हीप मेमोरी आमतौर पर सीधे वीएम आकार में दिखाई देती है। तो यदि आप -Xmx झंडे का उपयोग कर रहे हैं, तो बड़ी सेटिंग वाली प्रक्रिया में एक बड़ा वीएम आकार होगा।

53

रन jps -lv जो सभी चल रही जावा प्रक्रियाओं के पीआईडी ​​और कमांड लाइन दिखाता है।

उस कार्य के पीआईडी ​​को निर्धारित करें जिसे आप मारना चाहते हैं। फिर कमांड का उपयोग करें:

taskkill /PID <pid> 

गलत व्यवहार प्रक्रिया को मारने के लिए।

+0

टास्ककिल की आवश्यकता के बजाय इस कमांड का उपयोग करना बंद करें: jps -lv | "कुछ" ढूंढें WMIC प्रक्रिया जहां नाम = "java.exe" हटाएं – djangofan

+2

मुझे यह उत्तर पसंद है। अफसोस की बात है कि ** जेपीएस ** ** जेआरई ** के साथ वितरित नहीं है, जो कि एक सीमा है जहां मैं इसका उपयोग करना चाहता हूं। –

6

यदि आप जावा 6 का उपयोग कर रहे हैं, तो जेडीके बिन निर्देशिका से jvisualvm आज़माएं।

29

यदि आप प्रोसेसएक्सप्लोरर जैसे जीयूआई एप्लिकेशन नहीं चला सकते हैं और आप प्रक्रियाओं के "कमांड लाइन" तर्कों की तलाश में हैं तो आप कमांड लाइन के माध्यम से "wmic" का उपयोग कर सकते हैं। उदाहरण के लिए:

wmic PROCESS get Processid,Caption,Commandline 

आप एक विशिष्ट प्रक्रिया आपको ऐसा कर सकते हैं देखने के लिए चाहते हैं:

wmic PROCESS where "name like '%java%'" get Processid,Caption,Commandline 

उत्पादन इस से आप "जावा की तरह प्रक्रियाओं के आदेश पंक्ति तर्क के सभी दिखाएगा। "

+4

यह करने का सबसे अच्छा तरीका है क्योंकि आप इस सूची को फ़िल्टर करने के लिए "FIND.exe" का उपयोग कर सकते हैं और फिर प्रक्रिया को मारने के लिए इसे "WMIC .... हटाएं" पर पाइप कर सकते हैं। यह किसी भी बाहरी कार्यक्रम की आवश्यकता के बिना एक "शुद्ध" समाधान है। – djangofan

+1

आउटपुट को '/ format: list' ध्वज (उदाहरण के लिए, जब' कमांडलाइन 'लंबा होता है) का उपयोग करके अधिक पठनीय बनाया जा सकता है। – anishpatel

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