जावा के साथ काम करते समय, कोड का अंतिम निष्पादन पूर्व-संकलित कक्षाओं के माध्यम से होता है। एक बार जब आप जावा में एक क्लास लिखते हैं, तो कंपाइलर आपके हाई-लेवल सोर्स कोड को एक लो-लेवल स्कीम में बदल देता है, जिसे बायटेकोड कहा जाता है। आपके द्वारा लिखे गए प्रत्येक वर्ग के लिए, पूर्व-संकलित बाइटकोड का एक उदाहरण उत्पन्न होता है। इस बाइटकोड में निम्न-स्तरीय कोड होता है जिसे जावा वर्चुअल मशीन पर चलाया जा सकता है।
हालांकि, कभी-कभी आपको ऐसी स्थिति का सामना करना पड़ सकता है जिसमें जावा टर्मिनल कमांड चलाने से कुछ ऐसा मिलता है:could not find or load main class
. यह इंगित करता है कि आपकी कक्षा के बाइटकोड में कुछ समस्या है। लेकिन, आप इसे कैसे ठीक करते हैं? आइए जानें।
'मुख्य वर्ग को ढूंढ या लोड नहीं कर सका' का क्या अर्थ है?
त्रुटि could not find or load main class
इंगित करता है कि आपके कोड डिज़ाइन में कुछ समस्याएँ हैं। यह आमतौर पर तब होता है जब आप जावा प्रोग्राम चलाने के लिए अपने टर्मिनल पर निम्न की तरह कमांड चलाते हैं:
java Test
यहां, "टेस्ट" उस वर्ग का नाम है जिसमें आपका कोड है जिसे निष्पादित किया जाना है। यदि आप एक could not find or load main class
. का सामना करते हैं त्रुटि, इसका मतलब है कि टेस्ट क्लास के लिए बाइटकोड नहीं मिला।
'मुख्य वर्ग को ढूंढ या लोड नहीं कर सका' त्रुटि को कैसे ठीक करें?
ऐसे कई तरीके हैं जिनसे आप त्रुटि को ठीक कर सकते हैं। could not find or load main class
. को पहचानने और ठीक करने के कुछ शीर्ष तरीके यहां दिए गए हैं :
टाइपो की जांच करें
इस त्रुटि का पहला संभावित कारण टाइपिंग की गलती हो सकती है। चूंकि प्रोग्राम कॉल के सिंटैक्स में केवल दो कीवर्ड होते हैं - "जावा" और क्लास का नाम - एकमात्र स्थान जहां आप गलती कर सकते हैं वह है क्लास का नाम। यदि आप कीवर्ड में टाइपो करना चाहते हैं, तो आपको कमांड लाइन पर एक स्पष्ट "कमांड नहीं मिला" त्रुटि प्राप्त होगी।
टाइपिंग की गलतियों के लिए आप कक्षा के नाम की दोबारा जांच कर सकते हैं। अधिक बार नहीं, ऐसी त्रुटियां मूर्खतापूर्ण वर्तनी और टाइपिंग की गलतियों से उत्पन्न होती हैं।
मान लें कि आपने "Test.java" फ़ाइल में "टेस्ट" नामक एक वर्ग लिखा है। इस प्रकार आप इसे सामान्य रूप से कमांड लाइन के माध्यम से संकलित करेंगे:
81% प्रतिभागियों ने कहा कि बूटकैंप में भाग लेने के बाद उन्हें अपनी तकनीकी नौकरी की संभावनाओं के बारे में अधिक आत्मविश्वास महसूस हुआ। आज ही एक बूटकैंप से मिलान करें।
बूटकैंप शुरू करने से लेकर अपनी पहली नौकरी खोजने तक, औसत बूटकैंप ग्रेड ने करियर संक्रमण में छह महीने से भी कम समय बिताया।
javac Test.java
और फिर आप निम्न आदेश चलाकर इसे निष्पादित करेंगे:
java Test
यह आपके प्रोग्राम को ठीक से चलाना चाहिए। हालाँकि, यदि आपने उपरोक्त कमांड में "टेस्ट" की गलत वर्तनी की है, तो आपको एक Could not find or load main class
का सामना करना पड़ सकता है। त्रुटि।
एप्लिकेशन में गलत क्लासपाथ
ऐसे कई तरीके हैं जिनसे किसी एप्लिकेशन का क्लासपाथ इस त्रुटि का कारण बन सकता है। क्लासपाथ (क्लासस्पैट के रूप में लिखा गया) एक पर्यावरण चर है जो उस स्थान को इंगित करता है जहां उपयोगकर्ता वर्ग सिस्टम में संग्रहीत होते हैं। जिस निर्देशिका को क्लासपाथ इंगित करता है उसमें कई पूर्व-लिखित कक्षाएं होती हैं जिन्हें आप सीधे अपने कोड में आयात कर सकते हैं।
मान लें कि आपने निम्न आयात आदेश लिखा है:
Import org.company.Foo;
इसे चलाने से JVM को could not find or load main class
त्रुटि।
कभी-कभी, क्लासपाथ में वे सभी सिस्टम क्लास नहीं हो सकते हैं जिन पर आपका प्रोग्राम निर्भर करता है। इसका मतलब यह है कि हो सकता है कि आप उस पैकेज से एक वर्ग शामिल करने का प्रयास कर रहे हों जिसे आपने अभी तक डाउनलोड या सेट-अप नहीं किया है। उस स्थिति में भी, आपको इस त्रुटि का सामना करना पड़ेगा।
कक्षा को गलत पैकेज में घोषित किया गया है
यदि आपकी स्रोत कोड फ़ाइल के शीर्ष पर लिखा पैकेज उस पैकेज/मॉड्यूल को इंगित नहीं करता है जिसमें कक्षा घोषित की गई है। अधिकांश आईडीई लाइनिंग प्रक्रिया में त्रुटि दिखाकर इसे आसानी से समझने में आपकी सहायता कर सकते हैं। हालांकि, अगर यह आंख से फिसल जाता है, तो यह उपरोक्त त्रुटि का कारण होगा।
इस समस्या का सबसे अच्छा समाधान हमेशा यह जांचना है कि किसी वर्ग का पैकेज नाम सही पैकेज की ओर इशारा करता है या नहीं। यदि आप IntelliJ या VSCode जैसे उन्नत IDE का उपयोग करते हैं, तो इस समस्या के लिए लाइनिंग को सक्षम करना सुनिश्चित करें।
उदाहरण के लिए, प्रोजेक्ट/src/com/foo/bar पर संग्रहीत निम्न वर्ग का उदाहरण लें:
package com.foo.baz; class Bar { // Some code here }
जैसा कि आप देख सकते हैं, पैकेज com/foo/baz को इंगित करता है जबकि कक्षा वास्तव में com/foo/bar. इसे ठीक करने के लिए, आपको सही पैकेज को इंगित करने के लिए पैकेज स्टेटमेंट को अपडेट करना होगा:
package com.foo.bar; class Bar { // Some code here }
निष्कर्ष
इस लेख में, हमने इस पर एक नज़र डाली कि Could not find or load main class
जावा में है, और ऐसा क्यों होता है। फिर, हमने Could not find or load main class
को ठीक करने के कुछ शीर्ष तरीकों की पहचान करके अपनी चर्चा समाप्त की। त्रुटि।
यदि आप जावा में प्रोग्राम लिखना चाह रहे हैं, तो यह त्रुटि समय-समय पर सामने आ सकती है।
हालांकि त्रुटि संदेश काफी भयानक लग सकता है, इसे हल करना बहुत मुश्किल नहीं है। आपको बस यह जांचना है कि आप जिस कक्षा की तलाश कर रहे हैं वह सही स्थान पर है या नहीं।