फिक्स: मुख्य वर्ग को ढूंढ या लोड नहीं कर सका



समस्याओं को खत्म करने के लिए हमारे साधन का प्रयास करें

त्रुटि ' मुख्य वर्ग को खोज या लोड नहीं कर सका टर्मिनल में वर्ग नाम निर्दिष्ट करके जावा प्रोग्राम लॉन्च करने के लिए कमांड प्रॉम्प्ट में जावा कमांड का उपयोग करते समय होता है। ऐसा होने का कारण कक्षा घोषित करते समय उपयोगकर्ता की प्रोग्रामिंग गलती के कारण होता है।



जावा कमांड लाइन में मुख्य वर्ग को ढूंढ या लोड नहीं कर सका

मुख्य वर्ग- Java कमांड लाइन को ढूँढ या लोड नहीं कर सका



जैसा कि पहले उल्लेख किया गया है, यह त्रुटि ज्यादातर सिस्टम से संबंधित नहीं है और उपयोगकर्ता कई परिदृश्यों में एक गलती करता है जैसा कि नीचे दिखाया गया है। आगे बढ़ने से पहले, हम मानते हैं कि आपके पास जावा प्रोग्रामिंग भाषा का बुनियादी ज्ञान है और यह कैसे काम करता है।



जावा में in मुख्य वर्ग को खोजने या लोड करने में त्रुटि का क्या कारण है?

संदेश 'मुख्य वर्ग को खोज या लोड नहीं कर सका' का अर्थ है कि निष्पादन के लिए कक्षा लाने वाले जावा इंजन का पहला चरण विफल हो गया है। जावा कमान करने के लिए सक्षम नहीं था का पता लगाने सही निर्देशिका में कक्षा।

कुछ मामलों में, आपको जोड़ना होगा सही फ़ाइल पथ और जावा टर्मिनल को सही स्थान पर इंगित करें। चूंकि आप कमांड लाइन टर्मिनल से कमांड निष्पादित कर रहे हैं, इसलिए कंप्यूटर को यह नहीं पता है कि क्लास को कहां ढूंढना है या यह कहां स्थित है। लक्षित आईडीई में, यह समस्या नहीं है क्योंकि आईडीई वर्तमान कार्यशील निर्देशिका की ओर इशारा करता है।

Is जावा ’सिंटैक्स क्या है?

इससे पहले कि हम समस्या निवारण करना शुरू करें कि टर्मिनल हमें निष्पादित करने का प्रयास करते समय त्रुटि क्यों दे रहा है, पहले हमें कमांड के सिंटैक्स को देखने की आवश्यकता है। यदि आप सही सिंटैक्स का उपयोग नहीं कर रहे हैं, तो आप इस त्रुटि का सामना अनिवार्य रूप से करेंगे।



कमांड का सामान्य सिंटैक्स कुछ इस प्रकार है:

जावा [ ... ] [ ...]

यहां एक कमांड लाइन विकल्प है, एक पूरी तरह से योग्य जावा क्लास नाम है, और एक कमांड लाइन तर्क है जो पूरे पैकेज के संकलित होने पर आपके आवेदन को पास किया जाता है।

एक मान्य आदेश का एक उदाहरण है:

java -Xmx100m com.acme.example.ListAppuals केविन एरो बार्ट

उपरोक्त आदेश जावा कमांड को निम्नलिखित कार्यों को निष्पादित करेगा:

  • यह कक्षा comp के संकलित संस्करण की खोज करेगा com.acme.example.ListAppuals '।
  • खोज करने के बाद, यह कक्षा को लोड करेगा।
  • अगला, जब कक्षा भरी जाती है, तो कक्षा को एक वैध हस्ताक्षर, संशोधक और वापसी प्रकार के साथ 'मुख्य' विधि के लिए खोजा जाएगा। एक नमूना मुख्य वर्ग कुछ इस तरह होगा:
सार्वजनिक स्थैतिक शून्य मुख्य (स्ट्रिंग [])
  • विधि को ments केविन ’,, एरो’ और as बर्ट ’के रूप में स्ट्रिंग [] के साथ बुलाया जाएगा।

कैसे ठीक करें class मुख्य वर्ग को ढूंढ या लोड नहीं कर सका ’

समाधान 1: वर्ग नाम तर्क की जाँच करना

उपयोगकर्ताओं द्वारा की जाने वाली सबसे आम गलती यह है कि वे एक तर्क के रूप में एक गलत श्रेणी का नाम प्रदान करते हैं (या एक सही वर्ग का नाम एक गलत रूप है)। चूंकि हम कमांड लाइन पर पैरामीटर घोषित कर रहे हैं, इसलिए यह अत्यधिक संभावना है कि आप क्लास नाम तर्क को गलत रूप में पारित करेंगे। यहां हम उन सभी संभावित परिदृश्यों को सूचीबद्ध करेंगे, जहां आप गलती कर सकते हैं।

  • लेखन एक साधारण वर्ग का नाम । यदि आप 'com.acme.example' जैसे पैकेज में कक्षा की घोषणा करते हैं, तो आपको इसका उपयोग करना होगा पूर्ण वर्गनाम जावा कमांड में पैकेज भी शामिल है।
java com.acme.example.ListAppuals

के बजाय

जावा सूची
  • तुम्हे करना चाहिए एक वर्गनाम घोषित करें एक फ़ाइल नाम या pathname घोषित करने के बजाय। यदि आप इसके लिए पथनाम / फ़ाइल नाम घोषित करते हैं, तो जावा वर्ग को नहीं लाता है। ग़लत प्रविष्टियों में निम्नलिखित शामिल हैं:
जावा ListAppuals.class जावा कॉम / एक्मे / उदाहरण / ListAppuals.class
  • झलार इस पर ध्यान दिया जाना चाहिए। जावा कमांड संवेदनशील होते हैं और यदि आप एक अक्षर का भी गलती करते हैं, तो आप मुख्य वर्ग को लोड नहीं कर पाएंगे। का एक उदाहरण गलत गलतियाँ इस प्रकार हैं:
java com.acme.example.listappuals
  • आप नहीं चाहिए घोषित करना स्रोत फ़ाइल नाम । जैसा कि पहले उल्लेख किया गया है, आपको केवल कक्षा को सही पूर्ण वर्गनाम प्रारूप में घोषित करने की आवश्यकता है। एक गलती का उदाहरण है:
java ListAppuals.java
  • यदि आप बनाते हैं तो यह त्रुटि भी होगी टाइपिंग करने में गलती या कक्षा का नाम पूरी तरह से लिखना न भूलें

यदि आपने classname घोषित करने में कोई भी गलतियाँ की हैं, तो सुनिश्चित करें कि आप इसे ठीक कर लें और फिर प्रोग्राम लॉन्च करने का प्रयास करें।

समाधान 2: कक्षापथ की जाँच करना

यदि आपने classname को सही ढंग से घोषित किया है, लेकिन फिर भी त्रुटि दिखाई गई है, तो संभावना है कि java कमांड पथ में निर्दिष्ट classname नहीं खोज सका। क्लासपाथ एक रास्ता है जहाँ जावा रनटाइम संसाधन और क्लास फ़ाइलों की खोज करता है। आप नीचे दिखाए गए अनुसार दो अलग-अलग कमांड का उपयोग करके आसानी से क्लासपाथ सेट कर सकते हैं:

C:> sdkTool -classpath classpath1; classpath2 ... C:> सेट CLASSPATH = classpath1; classpath2 ...

क्लासपाथ के बारे में अधिक जानकारी प्राप्त करने के लिए, आपको निम्नलिखित दस्तावेजों की जांच करनी चाहिए।

जावा कमांड प्रलेखन

वर्गपथ की स्थापना

समाधान 3: निर्देशिका की जाँच

जब आप एक निर्देशिका को एक वर्गपथ के रूप में घोषित करते हैं, तो यह हमेशा नाम स्थान की जड़ के अनुरूप होगा। उदाहरण के लिए यदि '/ usr / स्थानीय / acme / कक्षाएं' क्लासपाथ पर है, तो जावा एक वर्ग 'com.acme.example.Appuals' की खोज करेगा। यह निम्नलिखित पथनाम के साथ एक वर्ग की तलाश करेगा:

/usr/local/acme/classes/com/acme/example/Appuals.class

तो संक्षेप में, यदि आप निम्न पते को कक्षापाठ में रखते हैं, तो जावा वर्ग को खोजने में सक्षम नहीं होगा:

/ Usr / स्थानीय / एक्मे / वर्गों / com / एक्मे / उदाहरण

आपको अपनी जाँच भी करनी चाहिए उपनिर्देशिका और देखें कि क्या यह FQN से मेल खाता है। यदि आपकी कक्षाएं FQN 'com.acme.example.Appuals' हैं, तो जावा निर्देशिका 'com / acme / उदाहरण' में 'Appuals.class' की खोज करेगा।

आपको एक उदाहरण देने के लिए, निम्नलिखित परिदृश्य को मानते हैं:

  • जिस वर्ग को आप चलाना चाहते हैं वह है: com.acme.example.Appuals
  • पूर्ण फ़ाइल पथ है: /usr/local/acme/classes/com/acme/example/Appuals.class
  • वर्तमान कार्यशील निर्देशिका है: / usr / स्थानीय / acme / कक्षाएं / com / acme / उदाहरण /

तब निम्नलिखित परिदृश्यों में पकड़ होगी:

# गलत, FQN को java Appuals की आवश्यकता है # गलत, वर्तमान कार्य निर्देशिका java com.acme.example.Appuals में कोई `com / acme / example` फ़ोल्डर नहीं है # गलत, उपरोक्त परिदृश्य java -classpath के समान। com.acme.example.Appuals # ठीक है; एक रिश्तेदार क्लासपैथ जावा -क्लासपथ सेट है ../../ .. com.acme.example.Appuals # ठीक; एक निरपेक्ष वर्गपथ को java -classpath / usr / स्थानीय / acme / कक्षाएं com.acme.example.Appuals सेट किया जाता है

ध्यान दें: क्लासपैथ को उन सभी अन्य वर्गों (गैर-प्रणाली) को भी शामिल करने की आवश्यकता है जिन्हें आपके अनुप्रयोगों की आवश्यकता है।

समाधान 4: वर्ग पैकेज की जाँच करना

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

4 मिनट पढ़ा