Java के साथ काम करते समय, कोड का अंतिम निष्पादन प्री-कंपाइल्ड क्लासेस के माध्यम से होता है। एक बार जब आप Java में एक क्लास लिखते हैं, तो कंपाइलर आपके हाई-लेवल सोर्स कोड को बाइटकोड नामक लो-लेवल स्कीम में बदल देता है। आपके द्वारा लिखी गई प्रत्येक क्लास के लिए, प्री-कंपाइल्ड बाइटकोड का एक इंस्टेंस जनरेट होता है। इस बाइटकोड में लो-लेवल कोड होता है जिसे Java Virtual Machine पर चलाया जा सकता है।
हालांकि, कभी-कभी आप ऐसी स्थिति का सामना कर सकते हैं जहां java टर्मिनल कमांड चलाने पर could not find or load main class जैसा कुछ लौटाता है। यह इंगित करता है कि आपके क्लास के बाइटकोड में कुछ समस्या है। लेकिन, आप इसे कैसे ठीक करते हैं? आइए पता करें।
'could not find or load main class' का क्या अर्थ है?
त्रुटि could not find or load main class इंगित करती है कि आपके कोड डिजाइन में कुछ समस्याएं हैं। यह आमतौर पर तब होता है जब आप अपने टर्मिनल पर Java प्रोग्राम चलाने के लिए निम्न जैसी कमांड चलाते हैं:
java Test
यहां, "Test" उस क्लास का नाम है जिसमें आपका कोड है जिसे निष्पादित किया जाना है। यदि आप could not find or load main class त्रुटि का सामना करते हैं, तो इसका मतलब है कि Test क्लास के लिए बाइटकोड नहीं मिल सका।
'could not find or load main class' त्रुटि कैसे ठीक करें?
त्रुटि को ठीक करने के कई तरीके हैं। यहां could not find or load main class की पहचान करने और ठीक करने के कुछ शीर्ष तरीके दिए गए हैं:
टाइपोस की जांच करें
इस त्रुटि का पहला संभावित कारण टाइपिंग गलती हो सकती है। चूंकि प्रोग्राम कॉल का सिंटैक्स केवल दो कीवर्ड्स से बना होता है - "java" और क्लास नाम - एकमात्र जगह जहां आप गलती कर सकते हैं वह क्लास नाम है। यदि आप कीवर्ड में टाइपो करते, तो आपको कमांड लाइन पर स्पष्ट "command not found" त्रुटि प्राप्त होती।
आप टाइपिंग गलतियों के लिए क्लास नाम को दोबारा जांचने का प्रयास कर सकते हैं। अक्सर, ऐसी त्रुटियां मूर्खतापूर्ण वर्तनी और टाइपिंग गलतियों से उत्पन्न होती हैं।
मान लीजिए आपने "Test.java" फाइल में "Test" नामक एक क्लास लिखी है। इसे कमांड लाइन के माध्यम से सामान्य रूप से कैसे कंपाइल करेंगे:
javac Test.java
और फिर आप निम्न कमांड चलाकर इसे एक्जीक्यूट करेंगे:
java Test
यह आपके प्रोग्राम को ठीक से चलाना चाहिए। हालांकि, यदि आपने उपरोक्त कमांड में "Test" को गलत लिखा है, तो आप Could not find or load main class त्रुटि का सामना कर सकते हैं।
एप्लिकेशन में गलत क्लासपाथ
कई तरीके हैं जिनसे एप्लिकेशन का क्लासपाथ इस त्रुटि का कारण बन सकता है। क्लासपाथ (CLASSPATH के रूप में लिखा गया) एक एनवायरनमेंट वेरिएबल है जो उस स्थान को इंगित करता है जहां यूजर क्लासेस सिस्टम में स्टोर होती हैं। वह डायरेक्टरी जिसे क्लासपाथ इंगित करता है, कई प्री-रिटन क्लासेस को समाहित करता है जिन्हें आप सीधे अपने कोड में इम्पोर्ट कर सकते हैं।
मान लीजिए आपने निम्न इम्पोर्ट कमांड लिखी:
Import org.company.Foo;
इसे चलाने से JVM Foo क्लास को could not find or load main class त्रुटि फेंकेगा।
कभी-कभी, क्लासपाथ में वे सभी सिस्टम क्लासेस नहीं हो सकतीं जिन पर आपका प्रोग्राम निर्भर करता है। इसका मतलब है कि शायद आप किसी पैकेज से क्लास शामिल करने का प्रयास कर रहे हैं जिसे आपने अभी तक डाउनलोड या सेटअप नहीं किया है। उस मामले में भी, आप इस त्रुटि का सामना करेंगे।
क्लास गलत पैकेज में घोषित की गई है
यदि आपके सोर्स कोड फाइल के शीर्ष पर लिखा पैकेज उस पैकेज/मॉड्यूल को इंगित नहीं करता जिसमें क्लास घोषित की गई है। अधिकांश IDEs लिंटिंग प्रक्रिया में त्रुटि दिखाकर इसे बहुत आसानी से समझने में आपकी मदद कर सकते हैं। हालांकि, यदि यह नजर से फिसल जाता है, तो यह उपरोक्त त्रुटि का कारण बनेगा।
इस समस्या का सबसे अच्छा समाधान हमेशा यह जांचना है कि क्लास का पैकेज नाम सही पैकेज को इंगित करता है या नहीं। यदि आप IntelliJ या VSCode जैसे एडवांस्ड IDE का उपयोग करते हैं, तो इस मुद्दे के लिए लिंटिंग इनेबल करना सुनिश्चित करें।
उदाहरण के लिए, project/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 }
निष्कर्ष
इस लेख में, हमने देखा कि Java में Could not find or load main class क्या है, और यह क्यों होता है। फिर, हमने Could not find or load main class त्रुटि को ठीक करने के कुछ शीर्ष तरीकों की पहचान करके अपनी चर्चा समाप्त की।
यदि आप Java में प्रोग्राम लिखना चाहते हैं, तो यह त्रुटि समय-समय पर सामने आ सकती है।
जबकि त्रुटि संदेश काफी डरावना लग सकता है, इसे हल करना बहुत मुश्किल नहीं है। आपको बस यह जांचना है कि आप जिस क्लास को ढूंढ रहे हैं वह सही स्थान पर है या नहीं।