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