2010-06-25 13 views
26

मेरे पास एक जावा फ़ाइल है, जिसे मैंने संकलित किया है, मैं जावा कंपाइलर (जावा) बाहर निकलने के बाद कंसोल पर केवल पहली 100 त्रुटियों को देख पाएगा। मैं कंसोल पर सभी संकलन त्रुटियों को कैसे देख पाऊंगा? अग्रिम धन्यवाद- opensidजावा संकलन त्रुटियों तक सीमित 100

+1

ऊपर जवाब में के रूप में "मूल्य" तर्क का उपयोग कर रहे बजाय वहां एक भी त्रुटि है जो बाद की सभी त्रुटियों का कारण बन रही है। यदि आप रूट कारण को ठीक करते हैं तो बाकी सभी त्रुटियां प्रासंगिक नहीं हैं। –

+0

आगे प्रतिबिंब पर कुल देखने के लिए एक अस्पष्ट कारण हो सकता है। हो सकता है कि मेट्रिक रखने के लिए कुछ विशेष कोड आधार कितना बुरा है? हालांकि मुझे अभी भी थोड़ा संदिग्ध लगता है। –

+0

चूंकि त्रुटि संदेशों की भारी बहुमत संभावित रूप से प्रेत संदेश हैं, @ पीटर रिकोर, हाँ, यह एक संदिग्ध मीट्रिक होगा। ;) –

उत्तर

29

आम तौर पर संकलक 100 त्रुटियों के बाद छोड़ देगा। इस बिंदु के बाद अधिकांश त्रुटियों की पहली त्रुटियों में से एक के कारण होने की संभावना है। यदि आपको और अधिक त्रुटियां होनी चाहिए तो javac विकल्प -Xmaxerrs और -Xmaxwarns

+0

- एक्समैक्सर 1000। तर्क से बराबर चिह्न छोड़ दें। –

+1

यदि मैं इस मान को 'org.apache.tools.ant.taskdefs.Javadoc' के जावाडोक में पास करना चाहता हूं, तो इन मानों को कैसे निर्दिष्ट करें? –

+0

पूर्व के लिए: javadoc.createArg()। SetValue ("- जे-एक्सएक्स: MaxPermSize =" + vmMaxPermSize); Xmaxerrs और Xmaxwarns की डेटाटाइप क्या होगी? पूर्णांक प्रकार ठीक है? –

4

क्या आपने -Xmaxerrors कमांड लाइन विकल्प का प्रयास किया है? here पर जाएं और "maxerrors" के लिए खोजें

+2

धन्यवाद पीटर इसके -Xmaxerrs – openssid

0

यदि आप विंडोज ऑपरेटिंग सिस्टम का उपयोग कर रहे हैं तो कमांड प्रॉम्प्ट का उपयोग करके अपने स्रोतों को संकलित करने का प्रयास करें। फिर वह कमांड प्रॉम्प्ट त्रुटियों से बाहर नहीं निकलेगा।

+0

धन्यवाद पुरुषोत्तम लेकिन मैं लिनक्स का उपयोग कर रहा हूं !!! – openssid

+0

फिर आप टर्मिनल का उपयोग करके संकलित कर सकते हैं। यदि आप अभी भी देखने में सक्षम नहीं हैं तो फ़ाइल में त्रुटि संदेश मुद्रित करने के लिए प्रिंटस्टैक विधि का उपयोग करें। –

+0

हां पुरुषोत्थम, मैं टर्मिनल का उपयोग कर रहा हूं, लेकिन मुझे संकलन त्रुटियां थीं, मुझे 100 से अधिक त्रुटियों को जानने में दिलचस्पी थी, "javac -Xmaxerrs 200" के साथ मैं 200 त्रुटियों को देखने में सक्षम हूं। – openssid

2

यदि आप ग्रहण का उपयोग कर रहे हैं, Preferences > Java > Compiler > Building > General आपको प्रति इकाई अधिक समस्याएं निर्दिष्ट करने देगा।

1

जावा कंपाइलर फ़ाइल को संकलित करते समय त्रुटियों की एक निश्चित संख्या के बाद छोड़ देता है क्योंकि जावा उन भाषाओं में से एक है जो त्रुटि के बाद अपेक्षित स्थिति में स्रोत को फिर से सिंक करना मुश्किल है। इसका मतलब यह है कि एक एकल गलत स्थान पर अर्ध-कॉलन कुछ चरम किनारे के मामलों में दर्जनों त्रुटियों (या अधिक — तरीके और अधिक उत्पन्न कर सकता है) जो वास्तविक त्रुटि से कोई लेना देना नहीं है। आपके स्रोत कोड में "सभी त्रुटियों" को प्रिंट करने में कोई बात नहीं है क्योंकि उनमें से अधिकतर प्रेत त्रुटियों की संभावना है।

पहले कुछ स्पष्ट, समझने योग्य त्रुटियों को ठीक करें जिन्हें आप अपने कंपाइलर आउटपुट में पा सकते हैं और पुनः प्रयास करें। (अपने शेष स्रोत में उन त्रुटियों के रूपों को देखने के लिए मत भूलना!) प्रति संकलन चलाने में अधिक त्रुटि संदेश प्राप्त करने से शायद मदद नहीं होगी और वास्तव में, केवल बेवकूफ और निराश होने के लिए सेवा करेंगे।

+0

मुझे यह जानने में दिलचस्पी थी कि सरल गलतियों से कितनी त्रुटियां हो सकती हैं। – openssid

+1

आपको यह नहीं मिलेगा। यही तो बात है। अधिकांश त्रुटियां पार्सर सीमाओं (और जावा की निकट-अदृश्य प्रकृति) के कारण प्रेत त्रुटियां हैं। आपको बस यह पता चलेगा कि संकलक वास्तव में बेवकूफ है और वास्तविक त्रुटियों बनाम "गलत अवसर की त्रुटियों" को नहीं समझ सकता है। –

+0

मुझे नहीं पता कि आप क्यों सोचते हैं कि जावा उन भाषाओं में से एक है जो त्रुटि के बाद अपेक्षित स्थिति में स्रोत को फिर से सिंक करना मुश्किल है 'और' अदृश्य-अयोग्य '। यह एक सुंदर मानक अर्धविराम-टर्मिनेटर भाषा है, जिस तरह से हम दशकों तक ठोस पार्सर्स बना रहे हैं, और 1 9 70 के दशक के बाद से पार्सर्स में त्रुटि वसूली होती है, अगर पहले नहीं। कैस्केडिंग संकलन त्रुटियां आमतौर पर अविकसित पहचानकर्ताओं और अन्य * अर्थपूर्ण * त्रुटियों के कारण होती हैं। – EJP

8

आप Gradle उपयोग कर रहे हैं:

allprojects { 
    gradle.projectsEvaluated { 
    tasks.withType(JavaCompile) { 
     options.compilerArgs << "-Xmaxerrs" << "1000" 
    } 
    } 
} 
1

और यदि आपके चींटी उपयोग करते समय, उपयोग करने के लिए

<compilerarg value="-Xmaxerrs"/> 
<compilerarg value="5"/> 

और नहीं

<compilerarg value="-Xmaxerrs 5"/> 

मैं हमेशा भूल जाते हैं।

+0

यदि आप "-Xmaxerrs 5" का उपयोग करना चाहते हैं, तो आप वैकल्पिक ' 'का उपयोग कर सकते हैं। –

1

मामले में आप चींटी उपयोग कर रहे हैं, निम्नलिखित काम करेगा:

<compilerarg line="-Xmaxerrs 10000" /> 

ध्यान दें कि आप "पंक्ति" तर्क https://stackoverflow.com/a/42396745/2200690