2014-11-27 8 views
5

मैं Google के माध्यम से इस समस्या की तलाश कर रहा हूं लेकिन यह पता चला है कि मुझे इस समस्या को ठीक करने का कोई तरीका नहीं मिल रहा है। असल में मेरे पास क्लासिक main विधि है जिसमें मैं नौकरी चलाता हूं, लेकिन सोनारक्वे मुझे दोहराता रहता है वहां एक असम्बद्ध मुख्य विधि पाई जाती है।एक असम्बद्ध मुख्य विधि को कैसे ठीक करें?

यहाँ कोड है:

 /** 
    * Main : Run MapReduce job 
    * 
    * @param args 
    *   arguments 
    */ 
    public static void main(String[] args) { 
     ExitManager exitManager = new ExitManager(); 
     // run job 
     if (!runJob(args)) { 
      exitManager.exit(1); 
     } 
    } 

मैं किसी विशेष समस्या यहाँ नहीं दिख रहा है, इसलिए जहां इस समस्या से आता है? क्या आपको कोई विचार है कि मैं इसे कैसे ठीक कर सकता हूं?

धन्यवाद।

+0

यह मुख्य विधि uncommented है। मुझे कोई समस्या नहीं दिख रही है। – robert

+0

मुझे यह नहीं मिला, यह कैसे असम्बद्ध है? – hacks4life

+0

नीचे दिए गए उत्तरों को पढ़ना, ऐसा लगता है कि यह "टिप्पणी" शब्द की एक साधारण गलतफहमी है। ओपी की तरह, मैंने इसका अर्थ यह लिया कि विधि में एक टिप्पणी होनी चाहिए, न कि यह टिप्पणी की जानी चाहिए ताकि यह – Stewart

उत्तर

6

असम्बद्ध मुख्य विधि एक चेकस्टाइल चेतावनी है कि main() विधि पर टिप्पणी नहीं की गई है। आपको अपने कोड में डीबग/टेस्ट main() विधियों का परीक्षण नहीं करना चाहिए।

आप की तरह कुछ का उपयोग कर अपने कार्यक्रम प्रवेश बिंदु श्रेणी को हटा सकते हैं:

<module name="UncommentedMain"> 
    <property name="excludedClasses" value="\.Main$"/> 
</module> 

भी http://checkstyle.sourceforge.net/config_misc.html#UncommentedMain

+0

तो आपका मतलब है कि मुझे सभी मुख्य विधि पर टिप्पणी करनी चाहिए ताकि इसे निष्पादित नहीं किया जा सके? – hacks4life

+0

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

+0

मैं देखता हूं। आप उन पंक्तियों को कहां रखते हैं? क्या आप चींटी फाइल या कुछ इस्तेमाल कर रहे हैं? – hacks4life

3

देखें documentation से: uncommented मुख्य() पद्धतियों के लिए

चेक।

तर्क: ए main() विधि अक्सर डीबगिंग उद्देश्यों के लिए उपयोग की जाती है। जब डिबगिंग समाप्त हो जाती है, डेवलपर अक्सर विधि को हटाने के लिए भूल जाते हैं, जो एपीआई को बदलता है और परिणामस्वरूप कक्षा या जेएआर फ़ाइल का आकार बढ़ाता है। वास्तविक कार्यक्रम प्रविष्टि बिंदुओं के अपवाद के साथ, सभी main() विधियों को हटाया जाना चाहिए या स्रोतों से टिप्पणी की जानी चाहिए।

+0

क्या होगा यदि मेरा प्रोग्राम वास्तव में एक प्रविष्टि बिंदु है और मुझे अभी भी यह चेतावनी है? :) – Line

0

आप @SuppressWarnings साथ चेतावनी को दबाने कर सकते हैं:

@SuppressWarnings("uncommentedmain") 
public class YourClass { 
    ... 
संबंधित मुद्दे