2013-06-06 13 views
6

निष्पादित नहीं कर रहा है मेरे आवेदन के मुख्य() में मेरे पास डेटा का बैक अप लेने के लिए निम्न कोड है, इसलिए सिस्टम बंद होने की स्थिति में यह खो नहीं जाता है।जावा शटडाउन फ़ंक्शन

//add hook to trigger Production Shutdown sequence 
    Runtime.getRuntime().addShutdownHook(new Thread(new Runnable() { 
     public void run() { 
      Production.shutdown(); 
     } 
    })); 
हालांकि

, कि मैं अपने आईडीई में Stop बटन दबाएँ या लॉग (कोड के नीचे दिखाया गया है) यह कभी नहीं कंसोल के लिए डेटाबेस के लिए डेटा को बचाने या किसी लॉग लिखने के लिए लगता है के माध्यम से इनपुट पर निर्भर हैं।

ctx.deploy(server); 

    server.start(); 

    //start the production process 
    Production.init(); 

    System.in.read(); 
    server.stop(); 

इस शट डाउन फ़ंक्शन को कैसे निष्पादित नहीं किया जा रहा है?

+1

क्या कोई कोड है जो शट डाउन होने पर 'System.exit' को कॉल करता है? अगर आपको किसी को ढूंढने में परेशानी हो रही है, तो शायद एक सुरक्षा प्रबंधक स्थापित करें जो लॉग आउट करने का प्रयास करता है। –

+0

इसके बजाय 'main()' के अंत में आप क्यों बंद नहीं करते हैं? – fge

+0

@fge 'main' के अलावा कई धागे हो सकते हैं। यदि वहां हैं, तो प्रोग्राम बंद हो जाएगा जबकि अन्य धागे अन्य सामान कर रहे हैं, जिससे समस्याएं आ रही हैं। – gparyani

उत्तर

11

अधिक जानकारी के लिए आपको Exit बटन, Stop, see my answer here का उपयोग करने की आवश्यकता है।

ध्यान दें कि यह सुविधा वर्तमान में केवल रन मोड में उपलब्ध है, डीबग में नहीं।

+1

और लगता है, यह विचार 14 ( –

+1

पर काम नहीं करता है बस आज मुझे शटडाउन हुक को अनदेखा करने के बारे में स्टॉप बटन के बारे में पता चला। व्यक्तिगत रूप से मुझे लगता है कि यह एक बहुत ही बुरा निर्णय है, मैंने हमेशा सोचा कि स्टॉप बटन Ctrl + C (जो यूनिक्स पर सिगिनट है) को अनुकरण करता है। और फिर बाहर निकलने के बटन के बिना डीबग होता है। अपने पीआईडी ​​('jps' मदद कर सकते हैं) को जानने की प्रक्रिया को मारने का प्रयास कर सकते हैं, है ना? गलत ... विंडोज और इसकी' टास्ककिल 'प्रक्रिया का उपयोग सामान्य तरीके से नहीं रोका जा सकता - केवल बलपूर्वक ('टास्किल/एफ/पिड एक्स') - ऐसा लगता है कि आईडीई किसी भी तरह से "इसकी रक्षा" कर रहा है (डीबग और सामान्य रन दोनों में)। यह शटडाउन हुक का परीक्षण आसान नहीं करता है। डीबगिंग केवल सादा असंभव है। – virgo47

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