যখনই আপনার বর্তমান প্রোগ্রামে বাহ্যিক ক্লাস/ইন্টারফেস (হয় ব্যবহারকারী সংজ্ঞায়িত বা, অন্তর্নির্মিত) ব্যবহার করার প্রয়োজন হয় তখন আপনাকে আমদানি কীওয়ার্ড ব্যবহার করে আপনার বর্তমান প্রোগ্রামে সেই ক্লাসগুলি আমদানি করতে হবে৷
কিন্তু, কোনো ক্লাস আমদানি করার সময় −
-
আপনি যে ক্লাস/ইন্টারফেসটি আমদানি করছেন তার পথটি যদি JVM-এ উপলব্ধ না হয়।
-
যদি আপনি আমদানি বিবৃতিতে উল্লিখিত পরম শ্রেণীর নামটি সঠিক না হয় (প্যাকেজ এবং শ্রেণীর নাম সহ)।
-
আপনি যদি ব্যবহৃত ক্লাস/ইন্টারফেস আমদানি করে থাকেন।
আপনি “চিহ্ন খুঁজে পাচ্ছেন না……” বলে একটি ব্যতিক্রম পাবেন
উদাহরণ
নিম্নলিখিত উদাহরণে আমরা কী-বোর্ড (System.in) থেকে ব্যবহারকারীর নামের প্রতিনিধিত্বকারী একটি স্ট্রিং মান পড়ার চেষ্টা করছি। এর জন্য আমরা Java.Util-এর স্ক্যানার ক্লাস ব্যবহার করছি প্যাকেজ।
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); } }
কম্পাইল সময় ত্রুটি
যেহেতু আমরা আমাদের প্রোগ্রামে স্ক্যানার নামের একটি ক্লাস ব্যবহার করছি এবং এটি আমাদের প্রোগ্রামে আমদানি করিনি। কার্যকর করার সময়, এই প্রোগ্রামটি নিম্নলিখিত কম্পাইল টাইম ত্রুটি -
তৈরি করেReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData ReadingdData.java:6: error: cannot find symbol Scanner sc = new Scanner(System.in); ^ symbol: class Scanner location: class ReadingdData 2 errors
সমাধান
-
প্রয়োজনীয় ক্লাস ইন্টারফেস ধারণ করে JAR ফাইলের জন্য আপনাকে ক্লাস পাথ সেট করতে হবে।
-
আমদানি ব্যবহার করে প্যাকেজ থেকে প্রয়োজনীয় শ্রেণী আমদানি করুন কীওয়ার্ড আমদানি করার সময় আপনাকে প্রয়োজনীয় ক্লাসের পরম নাম (প্যাকেজ এবং সাব প্যাকেজ সহ) নির্দিষ্ট করতে হবে।
উদাহরণ
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