কম্পিউটার

জাভা:মেইন ক্লাস খুঁজে বা লোড করা যায়নি

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

যাইহোক, কখনও কখনও আপনি এমন পরিস্থিতির মুখোমুখি হতে পারেন যেখানে জাভা টার্মিনাল কমান্ড চালানোর ফলে কিছু ফিরে আসে:could not find or load main class . এটি নির্দেশ করে যে আপনার ক্লাসের বাইটকোডের সাথে কিছু সমস্যা আছে। কিন্তু, আপনি কিভাবে এটা ঠিক করবেন? চলুন জেনে নেওয়া যাক।

'প্রধান ক্লাস খুঁজে পাওয়া যায়নি বা লোড করা যায়নি' মানে কি?

ত্রুটিটি could not find or load main class নির্দেশ করে যে আপনার কোড ডিজাইনে কিছু সমস্যা আছে। এটি সাধারণত ঘটে যখন আপনি একটি জাভা প্রোগ্রাম চালানোর জন্য আপনার টার্মিনালে নিম্নলিখিত মত একটি কমান্ড চালান:

java Test

এখানে, "পরীক্ষা" হল সেই ক্লাসের নাম যেখানে আপনার কোড রয়েছে যা কার্যকর করতে হবে। যদি আপনি একটি could not find or load main class সম্মুখীন হন ত্রুটি, এর মানে হল টেস্ট ক্লাসের জন্য বাইটকোড পাওয়া যায়নি।

কিভাবে 'প্রধান ক্লাস খুঁজে পাওয়া যায়নি বা লোড করা যায়নি' ত্রুটি ঠিক করবেন?

আপনি ত্রুটি ঠিক করতে পারেন যা বিভিন্ন উপায় আছে. could not find or load main class সনাক্ত করার এবং ঠিক করার কিছু শীর্ষ উপায় এখানে রয়েছে :

টাইপোর জন্য পরীক্ষা করুন

এই ত্রুটির প্রথম সম্ভাব্য কারণ একটি টাইপিং ভুল হতে পারে। যেহেতু প্রোগ্রাম কলের সিনট্যাক্সে শুধুমাত্র দুটি কীওয়ার্ড রয়েছে — “java” এবং ক্লাসের নাম — একমাত্র জায়গা যেখানে আপনি ভুল করতে পারেন তা হল ক্লাসের নাম। আপনি যদি কীওয়ার্ডে একটি টাইপো করতে চান, তাহলে আপনি কমান্ড লাইনে একটি সুস্পষ্ট "কমান্ড পাওয়া যায়নি" ত্রুটি পাবেন।

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

ধরা যাক আপনি "Test.java" ফাইলে "Test" নামে একটি ক্লাস লিখেছেন। এইভাবে আপনি সাধারণত কমান্ড লাইনের মাধ্যমে এটি কম্পাইল করবেন:

81% অংশগ্রহণকারী বলেছেন যে তারা বুটক্যাম্পে যোগ দেওয়ার পরে তাদের প্রযুক্তিগত কাজের সম্ভাবনা সম্পর্কে আরও আত্মবিশ্বাসী বোধ করেছেন। আজই একটি বুটক্যাম্পের সাথে মিলিত হন৷

গড় বুটক্যাম্প গ্র্যাড একটি বুটক্যাম্প শুরু করা থেকে শুরু করে তাদের প্রথম চাকরি খোঁজা পর্যন্ত ক্যারিয়ারের পরিবর্তনে ছয় মাসেরও কম সময় কাটিয়েছে।

javac Test.java

এবং তারপরে আপনি নিম্নলিখিত কমান্ডটি চালিয়ে এটি চালাবেন:

java Test

এটি ঠিক আপনার প্রোগ্রাম চালানো উচিত. যাইহোক, যদি আপনি উপরের কমান্ডে "Test" বানান ভুল করেন, তাহলে আপনি একটি Could not find or load main class সম্মুখীন হতে পারেন ত্রুটি৷

অ্যাপ্লিকেশানে ভুল ক্লাসপাথ

একটি অ্যাপ্লিকেশনের ক্লাসপথ এই ত্রুটির কারণ হতে পারে এমন একাধিক উপায় রয়েছে। ক্লাসপথ (ক্লাসপাথ হিসাবে লিখিত) হল একটি পরিবেশ পরিবর্তনশীল যা সিস্টেমে ব্যবহারকারীর ক্লাসগুলি যেখানে সংরক্ষিত থাকে তা নির্দেশ করে। ক্লাসপথ যে ডিরেক্টরির দিকে নির্দেশ করে তাতে একাধিক পূর্ব-লিখিত ক্লাস রয়েছে যা আপনি সরাসরি আপনার কোডে আমদানি করতে পারেন।

ধরা যাক আপনি নিম্নলিখিত আমদানি কমান্ডটি লিখেছেন:

Import org.company.Foo;

এটি চালানো হলে JVM /org/company/Foo.java অবস্থানে "Foo" ক্লাসের সন্ধান করবে। আপনি দেখতে পাচ্ছেন, যদি ক্লাসপথ ভুল ঠিকানায় নির্দেশ করে, JVM কখনই আপনি যে ক্লাসটি খুঁজছেন তা খুঁজে পেতে সক্ষম হবে না, এবং তাই could not find or load main class ত্রুটি.

কখনও কখনও, ক্লাসপথে আপনার প্রোগ্রাম নির্ভর করে এমন সমস্ত সিস্টেম ক্লাস নাও থাকতে পারে। এর মানে হল যে আপনি এমন একটি প্যাকেজ থেকে একটি ক্লাস অন্তর্ভুক্ত করার চেষ্টা করছেন যা আপনি এখনও ডাউনলোড বা সেট-আপ করেননি। সেই ক্ষেত্রেও, আপনি এই ত্রুটির সম্মুখীন হবেন৷

ক্লাসটি ভুল প্যাকেজে ঘোষণা করা হয়েছে

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

এই সমস্যাটির সর্বোত্তম সমাধান হল সর্বদা পরীক্ষা করা যে একটি ক্লাসের প্যাকেজের নাম সঠিক প্যাকেজের দিকে নির্দেশ করে। আপনি যদি IntelliJ বা VSCode-এর মতো একটি উন্নত IDE ব্যবহার করেন, তাহলে এই সমস্যার জন্য লিন্টিং সক্ষম করতে ভুলবেন না।

উদাহরণস্বরূপ, project/src/com/foo/bar এ সংরক্ষিত নিম্নলিখিত ক্লাসের উদাহরণ নিন:

package com.foo.baz;
class Bar {
  // Some code here
}

আপনি দেখতে পাচ্ছেন, প্যাকেজটি com/foo/baz-এর দিকে নির্দেশ করে যখন ক্লাসটি আসলে com/foo/bar-এ সংরক্ষিত থাকে। এটি ঠিক করতে, আপনাকে সঠিক প্যাকেজের দিকে নির্দেশ করতে প্যাকেজ বিবৃতি আপডেট করতে হবে:

package com.foo.bar;
class Bar {
  // Some code here
}

উপসংহার

এই নিবন্ধে, আমরা কি Could not find or load main class দেখেছি জাভাতে আছে এবং কেন এটি ঘটে। তারপর, একটি could not find or load main class ঠিক করার কিছু সেরা উপায় চিহ্নিত করে আমরা আমাদের আলোচনা শেষ করেছি। ত্রুটি.

আপনি যদি জাভাতে প্রোগ্রাম লিখতে চান তবে এই ত্রুটিটি সময়ে সময়ে পপ আপ হতে পারে।

যদিও ত্রুটি বার্তাটি বেশ ভয়ঙ্কর বলে মনে হতে পারে, এটি সমাধান করা খুব কঠিন নয়। আপনাকে যা করতে হবে তা হল আপনি যে ক্লাসটি খুঁজছেন সেটি সঠিক অবস্থানে আছে কি না।


  1. [সমাধান] ত্রুটি! APFS সিস্টেম ভলিউম হ্যান্ডেল

  2. উইন্ডোজ 10 এ ক্লাস রেজিস্টার করা হয়নি এমন ত্রুটি ঠিক করুন

  3. উইন্ডোজ 10-এ জাভা ভার্চুয়াল মেশিন তৈরি করা যায়নি

  4. Windows 10 এ ফাইভএম সিটিজেন ডিএলএল লোড করতে পারেনি ঠিক করুন