कोड के साथ जावा एप्लिकेशन को छोड़ने का सबसे अच्छा तरीका क्या है?
कोड के साथ जावा एप्लिकेशन को छोड़ने का सबसे अच्छा तरीका क्या है?
जवाबों:
आप System.exit()इस उद्देश्य के लिए उपयोग कर सकते हैं ।
Oracle के जावा 8 प्रलेखन के अनुसार:
public static void exit(int status)वर्तमान में चल रहे जावा वर्चुअल मशीन को समाप्त करता है। तर्क स्थिति कोड के रूप में कार्य करता है; कन्वेंशन द्वारा, एक नॉनज़रो स्टेटस कोड असामान्य समाप्ति को इंगित करता है ।
इस पद्धति को कक्षा रनटाइम में निकास विधि कहते हैं। यह विधि सामान्य रूप से कभी नहीं लौटती है।
कॉल
System.exit(n)प्रभावी रूप से कॉल के बराबर है:
Runtime.getRuntime().exit(n)
System.exit(0);
"0" जिसे आपके कार्यक्रम को बुलाया जाता है वह जानता है कि सब कुछ ठीक हो गया। यदि, हालांकि, आप किसी त्रुटि के कारण छोड़ रहे हैं, तो आपको System.exit(1);विशिष्ट त्रुटि के अनुरूप कोई अन्य गैर-शून्य संख्या चाहिए ।
इसके अलावा, जैसा कि दूसरों ने उल्लेख किया है, पहले साफ करें! जिसमें क्लोजिंग फाइल और अन्य खुले संसाधन शामिल हैं।
System.exit(1)(या कोई अन्य संख्या) यदि आप यह इंगित करना चाहते हैं कि यह त्रुटि के कारण बंद हो गया है। System.exit(0)इंगित करता है कि कार्यक्रम सामान्य रूप से बंद हो गया। आप अपनी पसंद की किसी भी संख्या में 1 को भी बदल सकते हैं, फिर जब आप एक स्क्रिप्ट से अपना एप्लिकेशन चला रहे हों तो आप यह निर्धारित कर सकते हैं कि क्या कोई त्रुटि थी।
System.exit() आमतौर पर सबसे अच्छा तरीका नहीं है, लेकिन यह आपके आवेदन पर निर्भर करता है।
किसी एप्लिकेशन को समाप्त करने का सामान्य तरीका main()विधि से बाहर निकलने से है। यह तब काम नहीं करता है जब अन्य गैर-बहरा धागे चल रहे हैं, जैसा कि एक ग्राफिकल यूजर इंटरफेस (AWT, स्विंग आदि) के साथ अनुप्रयोगों के लिए सामान्य है। इन अनुप्रयोगों के लिए, आप या तो GUI इवेंट लूप को समाप्त करने का एक तरीका ढूंढते हैं (पता नहीं है कि क्या AWT या स्विंग के साथ संभव है), या आह्वान करें System.exit()।
मैं जॉन से सहमत हूं, आपके आवेदन में कुछ प्रतिक्रिया है और System.exit () को कॉल करें।
आश्वस्त रहे कि:
जवाब System.exit () है, लेकिन इस कार्यक्रम को रद्द करने के लिए एक अच्छी बात नहीं है। कोई भी सफाई, जो आप करना चाहते हैं उसे नष्ट न करें।
प्रश्न के दो सरल उत्तर हैं।
यह "पेशेवर तरीका" है:
//This just terminates the program.
System.exit(0);
यह एक अधिक अनाड़ी तरीका है:
//This just terminates the program, just like System.exit(0).
return;
System.exit(0); return;यह भी अच्छा है, रिटर्न सिस्टम से बाहर निकलने से पहले किसी भी रदर कोड को चलाने से रोकता है, अन्यथा आपको एक ध्वज की आवश्यकता होगी (..i.e. if (!called_exit) { further code after exit statement }
Runtime.getCurrentRumtime().halt(0);
halt: "इस विधि का उपयोग अत्यधिक सावधानी के साथ किया जाना चाहिए। exitविधि के विपरीत , इस विधि से शटडाउन हुक शुरू नहीं होता है और अंतिम-निकासी से बाहर निकलने में सक्षम नहीं होने पर बिन बुलाए फाइनल नहीं होता है। यदि शटडाउन अनुक्रम जारी किया गया है। पहले से ही शुरुआत की जा चुकी है, फिर भी यह तरीका किसी भी शटडाउन हुक या फाइनल का इंतजार नहीं करता है। संक्षेप में, आपको उपयोग करने की आवश्यकता नहीं है halt, आपको पसंद करना चाहिए exit।
System.exit()जो चाहोगे, करोगे। लेकिन ज्यादातर स्थितियों में, आप शायद एक धागे से बाहर निकलना चाहते हैं, और मुख्य धागे को जीवित छोड़ सकते हैं। ऐसा करने से, आप किसी कार्य को समाप्त कर सकते हैं, लेकिन ऐप को पुनः आरंभ किए बिना किसी अन्य कार्य को शुरू करने की क्षमता भी बनाए रख सकते हैं।
System.exit (गर्भपात); तुरंत प्रक्रिया से बाहर निकलें।
इसे सही तरीके से करना चाहिए:
mainFrame.setDefaultCloseOperation(JFrame.DO_NOTHING_ON_CLOSE);
mainFrame.addWindowListener(new WindowListener() {
@Override
public void windowClosing(WindowEvent e) {
if (doQuestion("Really want to exit?")) {
mainFrame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
mainFrame.dispose();
}
}