विषय राज्यों के रूप में, क्या CTRL-C (और अन्य सिग्नल) को अक्षम करने का कोई तरीका है ताकि वे एप्लिकेशन को समाप्त न करें?जावा: जावा कंसोल एप्लिकेशन में Ctrl-C को अक्षम करना संभव है?
उत्तर
EDIT2: यह भी मदद मिल सकती है: Capture SIGINT in Java
This और this आप क्या चाहते हैं दिखाई देते हैं।
Ctrl-C और अन्य कमांड आपके प्रोग्राम में "सिग्नल" भेजते हैं, और यदि आप उन सिग्नल को पकड़ने के लिए "कैच" कोड लिखते हैं, तो आप बदल सकते हैं कि आपका प्रोग्राम कैसा प्रतिक्रिया करता है। आदर्श रूप से, आप ctrl-c को प्रोग्राम को समाप्त करना चाहते हैं, क्योंकि उपयोगकर्ता की अपेक्षा है, इसलिए ध्यान रखें कि आपको उपयोगकर्ता को यह बताना चाहिए कि यदि आप प्रोग्राम की प्रतिक्रिया बदलते हैं तो यह क्यों समाप्त नहीं हो रहा है।
संपादित 3: एक कुंजीलिस्टर का बिल्ली का सुझाव आपकी अगली सबसे अच्छी शर्त है यदि आप ईवेंट को पकड़ और खारिज नहीं कर सकते हैं। Halway down the page is an example of how to do it for java in linux/Windows - it's not a portable thing. अनिवार्य रूप से, आपका प्रोग्राम कंसोल की बजाय कुंजीबार्ड घटनाओं को भेजने के बजाय कीबोर्ड ईवेंट प्रबंधित करेगा। इसका मतलब है कि कमांड लाइन को बाईपास किया गया है, और ctrl-c कॉल नहीं पढ़ सकता है। मैं कोड लिखूंगा, लेकिन अब मैं काम पर हूं; बुधवार मेरे लिए एक लंबा दिन है। यदि आप घर आने के समय तक इसे प्राप्त नहीं कर पाते हैं, तो मैं कुछ उदाहरण लिखने पर एक नज़र डालूंगा।
आपकी सहायता के लिए धन्यवाद, हालांकि वे लिंक शटडाउन हुक सेट अप करने के लिए संदर्भित करते हैं, जो एप्लिकेशन को समाप्त करने से पहले JVM कॉल करता है। आवेदन अभी भी समाप्त कर दिया गया है, जो मैं रोकने की कोशिश कर रहा हूं। –
आईबीएम एक को आजमाएं जिसे मैंने अभी जोड़ा है। क्षमा करें, मैं कक्षा में हूं; मैं बाहर निकलने के बाद एक नजदीकी नजर डालने में सक्षम हूं, लेकिन यह सबसे अच्छा लेख प्रतीत होता है। –
संदर्भित आईबीएम लेख पृष्ठ का कहना है कि इसे प्रदर्शित नहीं किया जा सकता है - 404 :( – Mike
आपको CTRL-C द्वारा ट्रिगर किए गए SIGINT सिग्नल को रोकने के लिए सिग्नल हैंडलर का उपयोग करने की आवश्यकता है। सीटीआरएल-सी को ओएस स्तर पर संभाला जाएगा, यह मानते हुए कि आप वीएम को सिग्नल प्राप्त नहीं करना चाहते हैं। http://www.ibm.com/developerworks/ibm/library/i-signalhandling/?open&l=409,t=grj,p=jsh
ओरेकल लिंक - -
आईबीएम डेवलपर ऐसा करने पर एक लेख है http://www.oracle.com/technetwork/java/javase/signals-139944.html
इनमें से कोई भी लिंक काम करने लगता है जो दयालु है - वे वास्तव में उपयोगी लगते हैं। मैं बस http://ringlord.com/dl/Signals-in-Java.pdf पर आया था जो हो सकता है या हो सकता है वही सामान नहीं है जिसका आप उल्लेख कर रहे थे। निजी सन एपीआई कॉल का उपयोग करता है। –
मुझे लगता है अगर आप एक KeyListener Ctrl + C की स्थिति को संभालने के लिए शुरू कर दिया दबाया जा रहा यह या तो नकारना चाहिए ' प्राकृतिक 'प्रतिक्रिया या एक subroutine बुलाओ जिसे आपने इसके बजाय डिजाइन किया था।
धारणाएं उत्तर नहीं हैं। यह एक टिप्पणी होनी चाहिए। –
धारणा भी गलत है। –
- 1. जावा कंसोल में रंग
- 2. जावा में बंदर पैच करना संभव है?
- 3. जावा: क्या जावा एप्लिकेशन
- 4. क्या Win32 एप्लिकेशन प्रोजेक्ट को कंसोल एप्लिकेशन में कनवर्ट करना संभव है?
- 5. जावा कंसोल प्रोग्राम को वेबपैप
- 6. जावा में इटरेटर को मर्ज करना संभव है?
- 7. जावा में बाइनरी फाइलों को निष्पादित करना संभव है?
- 8. क्या जावा एप्लेट को मुफ्त में साइन करना संभव है?
- 9. कंसोल इतिहास को प्रोग्रामेटिक रूप से साफ़ करना संभव है?
- 10. जावा कंसोल ऐप्स
- 11. जावा में javax.swing.JButton को कैसे अक्षम करें?
- 12. जावा एप्लिकेशन में अच्छी तरह से प्रक्रिया को समाप्त करना संभव है?
- 13. System.Windows.Forms.WebBrowser जावा स्क्रिप्ट को अक्षम करना प्रतीत होता है?
- 14. जावा एप्लिकेशन में वॉल्यूम नियंत्रित करना
- 15. एक कंसोल एप्लिकेशन को किसी सेवा में कनवर्ट करना?
- 16. जावा में लॉग 4 जे आउटपुट को अक्षम करना
- 17. फ़्लैश प्लेयर को सी ++ या जावा एप्लिकेशन में एम्बेड करना?
- 18. जावा कंसोल प्रोग्राम
- 19. क्या यह गैर-कंसोल Win32 एप्लिकेशन को invoking cmd shell में संलग्न करना संभव है?
- 20. क्या हैडूप में सॉर्टिंग को अक्षम करना संभव है?
- 21. क्या सीएसएस में फ़ॉन्ट चिकनाई को अक्षम करना संभव है?
- 22. क्या tomcat servlet में jsessionid को अक्षम करना संभव है?
- 23. क्या सूची में स्क्रॉल को अक्षम करना संभव है?
- 24. क्या विम में रीप्लेस मोड को अक्षम करना संभव है?
- 25. जावा में डेस्कटॉप एप्लिकेशन
- 26. क्या फ़ायरबग कंसोल स्वचालन करना संभव है?
- 27. जावा टेक्स्ट आधारित एप्लिकेशन
- 28. क्या जावा वेब स्टार्ट एप्लिकेशन अपडेट होने पर कैश समाशोधन को मजबूर करना संभव है?
- 29. जावा में 1-बिट चर घोषित करना संभव है?
- 30. जावा कंसोल वर्णसेट अनुवाद
[जावा वर्चुअल मशीन में हैंडल सिग्नल] के संभावित डुप्लिकेट (http://stackoverflow.com/questions/40376/handle-signals-in-the-java-virtual-machine) –
आप कुछ सिग्नल अक्षम कर सकते हैं, लेकिन सब कुछ नहीं 'kill -9';) –
@ जोहान वह लेख मुझे कुछ कठिनाई बताता है। अधिक विशेष रूप से, ऐसा प्रतीत होता है कि JVM समाप्त होने से पहले सिग्नल हुक (Runtime.addShutdownHook के माध्यम से पंजीकृत) संकेतों को रोकता है। हालांकि यह वर्णन नहीं करता है कि कैसे * निष्क्रिय * सिग्नल को अक्षम करना संभव है (या कम से कम उन्हें एप्लिकेशन को समाप्त करने से रोकें)। –