"Cannot find symbol" কম্পাইল টাইম এরর তখন দেখায় যখন কম্পাইলার কোনো আইডেন্টিফায়ার (ক্লাস, মেথড, ভেরিয়েবল) চেনে না পারে। এটি সাধারণত ইমপোর্ট বা স্কোপ সমস্যার কারণে হয়।
প্রধান কারণসমূহ
- ইমপোর্টmissing: ব্যবহৃত ক্লাস/ইন্টারফেস ইমপোর্ট করা হয়নি।
- ভুল প্যাকেজ/ক্লাস নাম: ইমপোর্ট স্টেটমেন্টে স্পেলিং ভুল বা কেস মিসম্যাচ।
- ক্লাসপথে অনুপস্থিত: প্রয়োজনীয় JAR বা .class ফাইল ক্লাসপথে নেই।
- স্কোপ ইস্যু: ভেরিয়েবল ডিক্লেয়ার করা স্কোপের বাইরে থেকে অ্যাক্সেস করা হচ্ছে।
উদাহরণ: Scanner ইমপোর্ট না করা
public class ReadingdData {
public static void main(String args[]) {
System.out.println("Enter your name: ");
Scanner sc = new Scanner(System.in); // Scanner ইমপোর্ট নেই
String name = sc.next();
System.out.println("Hello " + name);
}
}
কম্পাইল টাইম এরর
ReadingdData.java:6: error: cannot find symbol
Scanner sc = new Scanner(System.in);
^
symbol: class Scanner
location: class ReadingdData
2 errors
সমাধান
- সঠিক ইমপোর্ট যোগ করুন:
import java.util.Scanner; - ক্লাসপথ চেক করুন: এক্সটার্নাল JAR ফাইলগুলো ক্লাসপথে আছে কিনা নিশ্চিত করুন (
-cpঅপশন বা IDE সেটিংসে)। - ফুলি কোয়ালিফাইড নাম ব্যবহার করুন: ইমপোর্ট ছাড়া
java.util.Scanner sc = new java.util.Scanner(System.in);লিখলেও চলে।
সঠিক করা কোড
import java.util.Scanner; // ইমপোর্ট যোগ করা হয়েছে
public class ReadingdData {
public static void main(String args[]) {
System.out.println("Enter your name: ");
Scanner sc = new Scanner(System.in);
String name = sc.next();
System.out.println("Hello " + name);
}
}
আউটপুট
Enter your name: krishna Hello krishna
টিপস: আধুনিক IDE (IntelliJ, Eclipse, VS Code) অটো-ইমপোর্ট সাজেশন দেয় (Alt+Enter / Ctrl+Shift+O), যা এই এরর দ্রুত ফিক্স করতে সাহায্য করে।