ফিক্স: প্রধান শ্রেণীর সন্ধান বা লোড করা যায়নি



সমস্যাগুলি দূর করার জন্য আমাদের উপকরণটি ব্যবহার করে দেখুন

ভূল ' প্রধান শ্রেণীর সন্ধান বা লোড করা যায়নি ’টার্মিনালে শ্রেণীর নাম নির্দিষ্ট করে জাভা প্রোগ্রাম চালু করার জন্য কমান্ড প্রম্পটে জাভা কমান্ড ব্যবহার করার সময় ঘটে। ক্লাস ঘোষণার সময় বেশিরভাগ ব্যবহারকারীর প্রোগ্রামিং ভুলের কারণে এটি কেন ঘটে থাকে তার কারণ।



জাভা কমান্ড লাইনে প্রধান শ্রেণীর সন্ধান বা লোড করা যায়নি

প্রধান শ্রেণি জাভা কমান্ড লাইন খুঁজে বা লোড করা যায় নি



পূর্বে উল্লিখিত মত, এই ত্রুটিটি বেশিরভাগ সিস্টেমে সম্পর্কিত নয় এবং ব্যবহারকারী নীচে দেখানো হিসাবে কয়েকটি পরিস্থিতিতে ভুল করে। এগিয়ে যাওয়ার আগে, আমরা ধরে নিই যে আপনার কাছে জাভা প্রোগ্রামিং ভাষা এবং এটি কীভাবে কাজ করে তার একটি প্রাথমিক জ্ঞান রয়েছে।



জাভাতে ‘প্রধান শ্রেণীর সন্ধান বা লোড করা যায়নি’ ত্রুটির কারণ কী?

‘মূল শ্রেণীর সন্ধান বা লোড করা যায়নি’ বার্তাটির অর্থ হ'ল জাভা ইঞ্জিনের প্রথম ধাপটি কার্যকর করার জন্য ক্লাসটি আনতে ব্যর্থ হয়েছে। দ্য জাভা কমান্ড করতে সক্ষম ছিল না সনাক্ত সঠিক ডিরেক্টরিতে ক্লাস।

কিছু ক্ষেত্রে, আপনাকে এটি যুক্ত করতে হবে সঠিক ফাইল পাথ এবং জাভা টার্মিনালটি সঠিক অবস্থানে দেখান। যেহেতু আপনি কমান্ড লাইন টার্মিনাল থেকে কমান্ডটি চালাচ্ছেন, তাই ক্লাসটি কোথায় পাওয়া যাবে বা এটি কোথায় রয়েছে তা কম্পিউটার জানে না। আইডিই লক্ষ্যযুক্ত আইডিইতে এটি সমস্যা নয় কারণ আইডিই একটি বর্তমান নির্দেশক নির্দেশককে নির্দেশ করে।

‘জাভা’ সিনট্যাক্স কী?

নির্বাহের চেষ্টা করার সময় টার্মিনাল কেন আমাদের ত্রুটি ফিরিয়ে আনছে তা সমাধান করার আগে, প্রথমে আমাদের কমান্ডের বাক্য গঠনটি দেখতে হবে। আপনি যদি সঠিক বাক্য গঠন ব্যবহার না করেন তবে অনিবার্যভাবে আপনি এই ত্রুটির মুখোমুখি হবেন।



কমান্ডের স্বাভাবিক বাক্য গঠনটি হ'ল কিছু:

জাভা [...] [...]

এখানে একটি কমান্ড লাইন বিকল্পটি রয়েছে, পুরোপুরি যোগ্যতাসম্পন্ন জাভা ক্লাসের নাম, এবং একটি কমান্ড লাইন আর্গুমেন্ট যা পুরো প্যাকেজটি সংকলিত হওয়ার পরে আপনার অ্যাপ্লিকেশনকে দেওয়া হয়।

বৈধ কমান্ডের একটি উদাহরণ:

java -Xmx100m com.acme.example.ListAppouts কেভিন তীর বার্ট

উপরের কমান্ডটি জাভা কমান্ডটি নিম্নলিখিত ক্রিয়াকলাপগুলি সম্পাদন করবে:

  • এটি ক্লাসের একটি সংকলিত সংস্করণ অনুসন্ধান করবে ‘ com.acme.example.Listappouts '।
  • অনুসন্ধানের পরে, এটি ক্লাসটি লোড করবে।
  • এর পরে, ক্লাসটি লোড করা হলে, শ্রেণিটি একটি বৈধ স্বাক্ষর, পরিবর্তনকারী এবং রিটার্নের ধরণ সহ একটি 'প্রধান' পদ্ধতির জন্য অনুসন্ধান করা হবে। একটি নমুনা প্রধান শ্রেণীর কিছু হবে:
পাবলিক স্ট্যাটিক শূন্য মূল (স্ট্রিং [])
  • পদ্ধতিটি 'কেভিন', 'তীর' এবং 'বার্ট' স্ট্রিং হিসাবে [] ডাকা হবে।

কীভাবে ‘মূল শ্রেণীর সন্ধান বা লোড পাওয়া যায়নি’ ঠিক করবেন

সমাধান 1: শ্রেণীর নামের যুক্তি পরীক্ষা করা হচ্ছে

ব্যবহারকারীদের মধ্যে সবচেয়ে সাধারণ ভুলটি হ'ল তারা আর্গুমেন্ট হিসাবে কোনও ভুল শ্রেণীর নাম সরবরাহ করে (বা একটি সঠিক শ্রেণীর নামটি একটি ভুল ফর্ম)। যেহেতু আমরা কমান্ড লাইনে প্যারামিটারগুলি ঘোষণা করছি, সম্ভবত আপনি সম্ভবত শ্রেণীর নামের যুক্তিটি একটি ভুল আকারে পাস করবেন। এখানে আমরা সম্ভাব্য সমস্ত পরিস্থিতিতে তালিকাবদ্ধ করব যেখানে আপনি ভুল করতে পারেন।

  • রচনা a সাধারণ শ্রেণীর নাম । আপনি যদি ‘com.acme.example’ এর মতো কোনও প্যাকেজে ক্লাস ঘোষণা করেন তবে আপনাকে অবশ্যই এটি ব্যবহার করতে হবে পুরো শ্রেণীর নাম জাভা কমান্ডের প্যাকেজ সহ।
java com.acme.example.Listappouts

পরিবর্তে

জাভা তালিকা অ্যাপ্লিকেশন
  • তোমার উচিত একটি ক্লাসের নাম ঘোষণা করুন ফাইল নাম বা পথের নাম ঘোষণার পরিবর্তে। আপনি যদি এর জন্য কোনও পথের নাম / ফাইল নাম ঘোষণা করেন তবে জাভা ক্লাসটি আনবে না। ত্রুটিপূর্ণ এন্ট্রি নিম্নলিখিত অন্তর্ভুক্ত:
জাভা লিস্টঅপুয়্যালস.ক্লাস জাভা com / acme / উদাহরণ / listAppouts.class
  • কেসিং বিবেচনায় নেওয়া উচিত। জাভা কমান্ডগুলি কেস সেনসিটিভ এবং আপনি যদি একটি অক্ষরেরও ভুল করেন তবে আপনি মূল শ্রেণিটি লোড করতে সক্ষম হবেন না। একটি উদাহরণ ভুল ভুল হ'ল:
java com.acme.example.listappouts
  • আপনি না করা উচিত ঘোষণা উত্স ফাইল নাম । পূর্বে উল্লিখিত মত, আপনার শুধুমাত্র সঠিক পূর্ণ শ্রেণিকামের ফর্ম্যাটে ক্লাসটি ঘোষণা করা দরকার। একটি ভুল উদাহরণ:
java listappouts.java
  • আপনি যদি এটি তৈরি করেন তবে এই ত্রুটিটিও ঘটবে টাইপ ভুল বা পুরোপুরি ক্লাসের নাম লিখতে ভুলবেন না

আপনি যদি ক্লাসের নাম ঘোষণাতে কোনও ত্রুটিপূর্ণ ভুল করেছেন তবে নিশ্চিত হয়ে নিন যে আপনি এটি ঠিক করেছেন এবং তারপরে প্রোগ্রামটি চালু করার চেষ্টা করুন।

সমাধান 2: ক্লাসপথ পরীক্ষা করা হচ্ছে

আপনি যদি ক্লাসের নামটি সঠিকভাবে ঘোষণা করে থাকেন তবে তবুও ত্রুটি দেখানো হয়, এমন সম্ভাবনা রয়েছে যে জাভা কমান্ড কোনও নির্দিষ্ট শ্রেণীর নামটি পথে খুঁজে পাচ্ছে না। ক্লাসপাথ এমন একটি পথ যেখানে জাভা রানটাইম রিসোর্স এবং ক্লাস ফাইলগুলির সন্ধান করে। আপনি নীচে প্রদর্শিত হিসাবে দুটি পৃথক কমান্ড ব্যবহার করে সহজেই ক্লাসপথ সেট করতে পারেন:

সি:> sdkTool -classpath classpath1; classpath2 ... C:> CLASSPATH = classpath1 সেট করুন; শ্রেণিপথ 2 ...

ক্লাসপাথ সম্পর্কিত আরও অন্তর্দৃষ্টি পেতে আপনার নীচের নথিগুলি পরীক্ষা করা উচিত।

জাভা কমান্ড ডকুমেন্টেশন

ক্লাসপথ সেট করা হচ্ছে

সমাধান 3: ডিরেক্টরি পরীক্ষা করা হচ্ছে

আপনি যখন কোনও ডিরেক্টরিকে ক্লাসপথ হিসাবে ঘোষণা করেন, এটি সর্বদা নেমস্পেসের মূলের সাথে মিলে যায়। উদাহরণস্বরূপ, যদি '/ usr / স্থানীয় / acme / শ্রেণী' ক্লাসপথে থাকে, তবে জাভা একটি 'com.acme.example.appouts' শ্রেণীর জন্য অনুসন্ধান করবে। এটি নিম্নলিখিত পথের নাম সহ কোনও শ্রেণীর সন্ধান করবে:

/usr/local/acme/class/com/acme/example/appouts.class

সুতরাং সংক্ষেপে, আপনি নিম্নলিখিত ঠিকানাটি ক্লাসপথে রাখলে জাভা ক্লাসটি খুঁজে পাবে না:

/ usr / স্থানীয় / acme / ক্লাস / com / acme / উদাহরণ

আপনারও পরীক্ষা করা উচিত উপ-ডিরেক্টরি এবং দেখুন এটি FQN এর সাথে মেলে কিনা। যদি আপনার ক্লাস এফকিউএন হয় 'com.acme.example.appouts', তবে জাভা 'com / acme / উদাহরণ' ডিরেক্টরিতে একটি 'অ্যাপ্লিকেশনক্লাস' অনুসন্ধান করবে।

আপনাকে একটি উদাহরণ দেওয়ার জন্য, ধরে নেওয়া যাক নিম্নলিখিত পরিস্থিতিতে:

  • আপনি যে ক্লাসটি চালাতে চান তা হ'ল: com.acme.example.appouts
  • দ্য পুরো ফাইল পাথ হ'ল: /usr/local/acme/class/com/acme/example/appouts.class
  • দ্য বর্তমান ওয়ার্কিং ডিরেক্টরি হ'ল: / ইউএসআর / স্থানীয় / অ্যাকমে / ক্লাস / কম / অ্যাকমে / উদাহরণ /

তারপরে নিম্নলিখিত পরিস্থিতিগুলি ধারণ করবে:

# ভুল, এফকিউএন এর প্রয়োজন জাভা অ্যাপ্লিকেশনগুলি # ভুল, বর্তমান কার্যনির্বাহী ডিরেক্টরিতে জাভা com.acme.example. অ্যাপ্লিকেশনগুলি # ভুল, উপরের দৃশ্যের মতো জাভা-ক্লাসপাথের মতো নেই wrong com.acme.example. অ্যাপ্লিকেশনগুলি # ঠিক আছে; আপেক্ষিক শ্রেণিপথটি জাভা-ক্লাসপথ সেট করা আছে ../../ .. com.acme.example. অ্যাপ্লিকেশনগুলি # ঠিক আছে; একটি নিরঙ্কুশ ক্লাসপথ সেট করা আছে জাভা-ক্লাসপাথ / ইউএসআর / স্থানীয় / অ্যাকমে / ক্লাস com.acme.example.appouts

বিঃদ্রঃ: শ্রেণিপথটিতে অন্যান্য অ্যাপ্লিকেশনগুলি (নন-সিস্টেম) অন্তর্ভুক্ত করা দরকার যা আপনার অ্যাপ্লিকেশনগুলির প্রয়োজন।

সমাধান 4: ক্লাস প্যাকেজ চেক করা হচ্ছে

উপরের সমস্ত সমাধান যদি আপনার ক্ষেত্রে সত্য থাকে তবে আপনাকে অবশ্যই আপনার উত্স কোডটি সঠিক ফোল্ডারে স্থাপন করা হয়েছে তা নিশ্চিত করতে হবে। এছাড়াও, আপনি সঠিকভাবে ঘোষণা করেছেন প্যাকেজ । আপনি যদি কোনও আইডিই দিয়ে আপনার কোড চালনা করেন তবে এটি সম্ভবত আপনাকে সমস্যাটি সম্পর্কিত জানিয়ে দেবে। যাইহোক, আমাদের ক্ষেত্রে, যেহেতু আমরা কমান্ড প্রম্পটে এটি চালাচ্ছি, ভুলটি নজরে যাবে এবং আপনি বর্গ ত্রুটিটি আলোচনায় আসবেন।

4 মিনিট পঠিত