জাভা প্রোগ্রাম কম্পাইল (javac) করলে .class ফাইল তৈরি হয়। এক্সিকিউট করার সময় java ClassName কমান্ড দিলে JVM সেটি খুঁজে বের করে রান করে। যদি JVM ক্লাস ফাইল খুঁজে না পায়, তবে "Error: Could not find or load main class" এরর দেখায়।
প্রধান কারণ ও সমাধান
১. ভুল ক্লাস নাম (Typo)
D:\>java Exmple // সঠিক: Example Error: Could not find or load main class Exmple
সমাধান: সঠিক ক্লাস নাম লিখুন (java Example)।
২. ভুল কেস (Case Sensitivity)
D:\>java EXAMPLE // সঠিক: Example Error: Could not find or load main class EXAMPLE Caused by: java.lang.NoClassDefFoundError: Example (wrong name: EXAMPLE)
সমাধান: ক্লাস নামের কেস ঠিক রাখুন (java Example)।
৩. ভুল প্যাকেজ নাম / প্যাকেজ ছাড়া রান করা
package sample;
class Example { ... }
D:\>javac -d . Example.java D:\>java samp.Example // ভুল প্যাকেজ Error: Could not find or load main class samp.Example
সমাধান: সঠিক প্যাকেজ নাম দিন (java sample.Example) এবং ক্লাসপথ থেকে রান করুন (প্যাকেজের রুট ডিরেক্টরি থেকে)।
৪. .class এক্সটেনশন যোগ করে রান করা
D:\>java Example.class Error: Could not find or load main class Example.class
সমাধান: এক্সটেনশন বাদ দিন (java Example)।
৫. ক্লাসপথ সেট না করা
যদি ক্লাস ফাইল অন্য ডিরেক্টরি/জারে থাকে:
java -cp /path/to/classes com.example.Main
চেকলিস্ট
- ক্লাস নাম স্পেলিং এবং কেস ঠিক কিনা।
- প্যাকেজ ডিক্লেরেশন এবং ফোল্ডার স্ট্রাকচার মিলে কিনা।
- কমান্ডটি প্যাকেজের রুট ডিরেক্টরি থেকে রান করা হয়েছে কিনা।
.classএক্সটেনশন দিয়েছেন কিনা (দিতে হবে না)।- ম্যানিফেস্ট ফাইলে Main-Class আছে কিনা (JAR ফাইলের জন্য)।