মেইন ক্লাস জাভা খুঁজে বা লোড করতে পারিনি? এটি কীভাবে ঠিক করা যায় তা এখানে!

মেইন ক্লাস জাভা খুঁজে বা লোড করতে পারিনি? এটি কীভাবে ঠিক করা যায় তা এখানে!

যদি আপনি কোন স্পষ্ট কারণ ছাড়াই আপনার জাভা প্রজেক্টে মূল শ্রেণীর ত্রুটি খুঁজে না পান, তাহলে চিন্তা করবেন না, আপনি একা নন।





সবচেয়ে অপ্রত্যাশিত এবং স্বতaneস্ফূর্ত ত্রুটির একটি হিসাবে, JVM- এর (জাভা ভার্চুয়াল মেশিন) একটি ডিফল্ট ক্লাসপথে আটকে থাকার প্রবণতার জন্য ধন্যবাদ, 'প্রধান শ্রেণীটি খুঁজে পাওয়া যায়নি' সমস্যাটি এমন কিছু যা অপেশাদার এবং পেশাদারদের একইভাবে হান্ট করে।





কিন্তু এই সমস্যাটি আসলে মনে হয় তার চেয়ে কম ভয়ঙ্কর। আপনি কীভাবে এই ত্রুটি থেকে একবার এবং সর্বদা পরিত্রাণ পেতে পারেন তা জানতে পড়ুন।





কেন প্রধান ক্লাস পাওয়া যায়নি?

আমরা কিভাবে এবং কেন JVM মূল শ্রেণী খুঁজে বের করতে পারিনি তা বোঝার চেষ্টা করার আগে আমাদের ধারণাটি বুঝতে হবে ক্লাসপথ জাভাতে।

ক্লাসপথ কি?

ক্লাসপাথ হল ফাইল পাথ যা জাভা রানটাইম পরিবেশ ক্লাস এবং অন্যান্য রিসোর্স ফাইল অনুসন্ধান করে। এটি ব্যবহার করে সেট করা যেতে পারে -ক্লাসপথ একটি প্রোগ্রাম চালানোর সময় বা সিস্টেম সেট করার বিকল্প ক্লাসপ্যাথ পরিবেশ সূচক.



নাম অনুসারে, এটি কেবল একটি ফাইল পাথ যেখানে ক্লাস JDK প্যাকেজ বা ডিরেক্টরিতে ফাইল পাওয়া যাবে।

যখন JVM মূল শ্রেণী সনাক্ত করতে অক্ষম হয়, এটি প্রায়শই কারণ এটি সংশ্লিষ্ট খুঁজছে ক্লাস ভুল ক্লাসপথে ফাইল। অবশ্যই, এই সমস্যাটি সংশোধন করার উপায় হল প্যাকেজ ব্যবহার করে অথবা ক্লাসপথ নির্দিষ্ট করে ক্লাসপথ ম্যানুয়ালি নির্দিষ্ট করা।





এই মুহুর্তে, যদি আপনি জাভা ক্লাসগুলির আপনার স্মৃতি রিফ্রেশ করতে চান, তাহলে আমাদের গাইডটি দেখুন জাভাতে ক্লাস তৈরি করা

একটি টেরাবাইট হার্ড ড্রাইভে কত জিবি

প্যাকেজ ব্যবহার করা

নামক একটি ক্লাস তৈরি করা যাক পরীক্ষা । নামক একটি প্যাকেজে রাখুন প্যাকেজ । প্যাকেজগুলি জাভাতে ব্যবহার করা হয় যাতে একই ধরনের ক্লাস একসাথে গ্রুপ করা যায় অথবা ক্লাসের জন্য একটি অনন্য নামস্থান প্রদান করা হয়।





এই সহজ উদাহরণে, একটি প্যাকেজ ব্যবহার করা আপনাকে জাভা এর ক্লাসপথ কিভাবে কাজ করে তা কল্পনা করতে সাহায্য করবে। আপনার ফাইল ম্যানেজার অ্যাপ্লিকেশনে, একটি প্যাকেজ একটি স্বাধীন ফোল্ডার হিসাবে উপস্থাপন করা হয়।

package testPackage;
public class Test {
public static void main(String args[]) {
System.out.println('File successfully found!');
}
}

এখন, একটি নতুন টার্মিনাল খুলুন এবং নিশ্চিত করুন যে আপনার কাজের ডিরেক্টরিটি প্যাকেজ ফোল্ডারটির মতোই। আপনি ব্যবহার করে কাজের ডিরেক্টরি পরিবর্তন করতে পারেন সিডি যে কোন অপারেটিং সিস্টেমে কমান্ড।

কম্পাইল Test.java নিম্নলিখিত কমান্ডটি চালানোর মাধ্যমে:

package testPackage;
javac testPackage/Test.java

এটি টেস্টপ্যাকেজে সংকলিত বাইনারি ফাইল (। ক্লাস ফাইল) সংরক্ষণ করবে।

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

java testPackage.Test

ক্লাস ফাইলগুলিকে কল করার এই পদ্ধতিটিও নিশ্চিত করে যে আপনি একই কাজ ডিরেক্টরি থেকে বিভিন্ন প্যাকেজ থেকে এক্সিকিউটেবলকে কল করতে পারেন। আপনাকে যা করতে হবে তা হল সম্পূর্ণ যোগ্য শ্রেণীর নাম পরিবর্তন করা।

আরও উন্নত বাস্তবায়নে, আমরা সুপারিশ করি যে আপনি আপনার ক্লাস এবং সোর্স ফাইলগুলির জন্য পৃথক সাবফোল্ডার তৈরি করুন যাতে প্যাকেজের মধ্যে ফাইলগুলি আরও ভালভাবে পরিচালনা করা যায়।

ম্যানুয়ালি ক্লাসপথ নির্দিষ্ট করা

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

প্রচলিতভাবে, সোর্স ফাইল সহ ডিরেক্টরিটি লেবেলযুক্ত src এবং .class ফাইল সহ একটি হিসাবে লেবেলযুক্ত ক্লাস যথাযথ কাঠামোগত নির্দেশনার কারণে JVM- এর মূল শ্রেণী খুঁজে না পাওয়ার সম্ভাবনা উল্লেখযোগ্যভাবে হ্রাস পেয়েছে তা নিশ্চিত করার এটি একটি উপায়।

যদি আমরা এই পদ্ধতিটি ব্যবহার করি, কম্পাইল করার আগে ডিরেক্টরি কাঠামোটি দেখতে কেমন হবে:

তারা কি একে অপরকে টুইটার অনুসরণ করে?
|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes

উপরের চিত্রের প্রতিটি ইন্ডেন্ট ফাইল অনুক্রমের এক স্তরের সাথে মিলে যায় যা আপনার প্রকল্প অনুসরণ করা উচিত।

এটি কম্পাইল করার জন্য, নিশ্চিত করুন যে আপনার ওয়ার্কিং ডিরেক্টরিটি মাইফোল্ডার। এখন, নিম্নলিখিত কমান্ডটি টাইপ করুন:

javac -d classes src/testPackage/Test.java

দ্য ক্লাস এক্সিকিউটেবল সংরক্ষণ করা উচিত myFolder/ক্লাস/testPackage । তদনুসারে, ফাইল ডিরেক্টরি কাঠামো এরকম কিছু দেখায়: | _+_ |

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

|---myFolder
| |---src
| |---testPackage
| |---Test.java
|
| |---classes
| |---testPackage
| |---Test.class

এই কমান্ডটি চালানো আপনাকে পছন্দসই আউটপুট দিতে হবে। কিন্তু, একটি সাধারণ ত্রুটি সমাধানের জন্য এত পুনর্গঠনের প্রয়োজন কেন?

জাভাতে ফাইল সংগঠিত করার গুরুত্ব

যে কারণে 'প্রধান শ্রেণী খুঁজে পাওয়া যায়নি বা লোড করা যায়নি' তা নিক্ষেপ করা হয়েছে কারণ JVM আপনার কোথায় খুঁজে পায়নি ক্লাস ফাইল সংরক্ষণ করা হচ্ছিল।

এই ত্রুটি সমাধানের সবচেয়ে সহজ উপায় হল .class ফাইল কোথায় সংরক্ষিত হয় তা নিয়ন্ত্রণ করা এবং স্পষ্টভাবে JVM কে সেখানে দেখতে বলা। আপনার সোর্স ফাইল এবং এক্সিকিউটেবলগুলিকে আলাদাভাবে সংগঠিত করে এবং একটি কার্যকরী ডিরেক্টরি থেকে সবকিছু নিয়ন্ত্রণ করে এটি সম্ভব হয়েছে।

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

জাভাতে ক্লাসপথ কিভাবে কাজ করে এবং আপনার কোড চালানোর সময় আপনি যে অসংখ্য জিনিস নিয়ন্ত্রণ করতে পারেন সে সম্পর্কে আরও পড়তে, আপনি ওরাকল এর দিকেও নজর দিতে পারেন বিস্তারিত এবং ব্যবহারকারী বান্ধব রেফারেন্স

শেয়ার করুন শেয়ার করুন টুইট ইমেইল নতুন প্রোগ্রামারদের জন্য 10 সেরা শিক্ষানবিশ প্রকল্প

প্রোগ্রামিং শিখতে চান কিন্তু জানেন না কোথা থেকে শুরু করবেন? এই শিক্ষানবিস প্রোগ্রামিং প্রকল্প এবং টিউটোরিয়ালগুলি আপনাকে শুরু করবে।

কিভাবে ল্যান্ডলাইনে স্প্যাম কল বন্ধ করা যায়
পরবর্তী পড়ুন সম্পর্কিত বিষয়
  • প্রোগ্রামিং
  • জাভা
লেখক সম্পর্কে যশ চেলানি(10 নিবন্ধ প্রকাশিত)

যশ একজন উচ্চাকাঙ্ক্ষী কম্পিউটার বিজ্ঞানের ছাত্র, যিনি জিনিসগুলি তৈরি করতে এবং প্রযুক্তি বিষয়ক সব বিষয়ে লিখতে ভালোবাসেন। অবসর সময়ে, তিনি স্কোয়াশ খেলতে, সর্বশেষ মুরাকামির একটি অনুলিপি পড়তে এবং স্কাইরিমে ড্রাগন শিকার করতে পছন্দ করেন।

Yash Chellani থেকে আরো

আমাদের নিউজলেটার সদস্যতা

প্রযুক্তি টিপস, রিভিউ, ফ্রি ইবুক এবং এক্সক্লুসিভ ডিলের জন্য আমাদের নিউজলেটারে যোগ দিন!

সাবস্ক্রাইব করতে এখানে ক্লিক করুন