ClassNotFoundException तब होता है जब JVM रनटाइम पर निर्दिष्ट पथ पर क्लास फ़ाइल नहीं ढूंढ पाता। सामान्य कारण:
- गलत क्लास नाम (टाइपो, केस-संवेदनशीलता)
- क्लासपथ में पैकेज रूट गायब
- JAR फ़ाइल क्लासपथ में नहीं
- क्लास फ़ाइल संकलित नहीं हुई या गलत निर्देशिका में
उदाहरण परिदृश्य
क्लास myPackage.example.Sample को D:/myPackage/example/Sample.class पर संकलित किया गया है।
// गलत पैकेज नाम - टाइपो
Class.forName("myPackage.exampl.Sample"); // ClassNotFoundException
// सही नाम लेकिन गलत क्लासपथ (E:/ से चला रहे हैं, क्लास D:/ में है)
Class.forName("myPackage.example.Sample"); // फिर भी ClassNotFoundExceptionसमाधान
- क्लास नाम की वर्तनी और केस सत्यापित करें।
- सुनिश्चित करें कि पैकेज रूट निर्देशिका (उदाहरण के लिए,
D:/) क्लासपथ में है। - निष्पादन करें:
java -cp D:/ ClassNotFoundExample
सही निष्पादन
E:\>javac ClassNotFoundExample.java E:\>java -cp D:/ ClassNotFoundExample The class named Sample loaded successfully.........
मुख्य अंतर
ClassNotFoundException (रनटाइम पर क्लास नहीं मिली) बनाम NoClassDefFoundError (क्लास संकलन पर मिली लेकिन रनटाइम पर गायब)।