2010-09-17 13 views
8

मैं बस सोच रहा हूं। क्या मुझे जावा कमांड लाइन एप्लिकेशन के main विधि से पहले System.exit(0); पर कॉल करने की आवश्यकता है? यदि हां, तो क्यों? इसे अपने आप से बाहर निकलने से क्या अंतर है, अगर मैं हमेशा 0 डालता हूं? क्या साफ नहीं है?एंड जावा कमांड लाइन एप्लिकेशन ठीक से

अग्रिम धन्यवाद।

+1

यह भी देखें http://stackoverflow.com/questions/3715967/when-should-we-call-system-exit-in-java – Qwerky

उत्तर

16

नहीं! जावा प्रोग्राम को समाप्त करने के लिए आपको हमेशा System.exit(0) पर कॉल करने की आवश्यकता नहीं है। यदि आपके कोड द्वारा उत्पन्न कोई गैर-डिमन थ्रेड नहीं है, तो एप्लिकेशन आपके मुख्य थ्रेड कार्य को समाप्त करने पर स्वचालित रूप से समाप्त हो जाएगा।

यदि आपकी मुख्य विधि के परिणामस्वरूप कुछ गैर-डिमन थ्रेड उत्पन्न होते हैं जो अभी भी कुछ प्रसंस्करण कर रहे हैं, जबकि आपकी मुख्य विधि अंत तक पहुंच गई है, तो एप्लिकेशन को तब तक समाप्त नहीं किया जाएगा जब तक कि उन धागे पूर्ण नहीं हो जाते। इस मामले में, यदि आप स्पष्ट रूप से System.exit(0) पर कॉल करते हैं, तो आवेदन तुरंत आपके सभी धागे को मार देगा।

कृपया javadoc of Thread देखें जो विवरण का उल्लेख करता है।

2

System.exit() पर कॉल करने की कोई आवश्यकता नहीं है, बस main() से वापस आएं। जावा प्रोग्राम से बाहर निकलने के लिए यह सामान्य मुहावरे है।

System.exit() आमतौर पर चीजों के बीच में एक ऐप को समाप्त करने के लिए कहा जाता है (जिसका आमतौर पर घातक त्रुटि के कारण असामान्य समाप्ति का मतलब होता है)।

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