একটি মাল্টি-রিলিজ জার (mrjar নামেও পরিচিত ) একাধিক Jdk -এর জন্য একটি লাইব্রেরির একই রিলিজ রয়েছে সংস্করণ . এর মানে হল আমাদের mrjar নামে একটি লাইব্রেরি থাকতে পারে যেটি Jdk 9 এর জন্য কাজ করে। mrjar -এর কোড শ্রেণী রয়েছে ফাইলগুলি ৷ Jdk 9-এ সংকলিত . Jdk 9 এর সাথে কম্পাইল করা ক্লাসগুলি Jdk 9 দ্বারা অফার করা API এর সুবিধা নিতে পারে।
The mrjar একটি জারের ইতিমধ্যে বিদ্যমান ডিরেক্টরি কাঠামো প্রসারিত করতে পারে। এটিতে একটি রুট ডিরেক্টরি রয়েছে যেখানে এর সমস্ত বিষয়বস্তু থাকে এবং META-INF ডিরেক্টরি যেটি মেটাডেটা সঞ্চয় করতে ব্যবহৃত হয়েছে জার সম্পর্কে সাধারণত, একটি জারে একটি META-INF/MANIFEST.MF থাকে যে ফাইলটিতে বৈশিষ্ট্য রয়েছে।
নিচের মত একটি জার মধ্যে এন্ট্রি:
- jar-root - C1.class - C2.class - C3.class - C4.class - META-INF - MANIFEST.MF
উপরের টেমপ্লেটে, জারটিতে চারটি শ্রেণীর ফাইল এবং একটি MANIFEST.MF রয়েছে ফাইল mrjar META-INF ডিরেক্টরিকে প্রসারিত করে ক্লাসগুলি সঞ্চয় করার জন্য যা Jdk সংস্করণের জন্য নির্দিষ্ট হতে পারে। META-INF ডিরেক্টরিতে সংস্করণ রয়েছে সাব-ডিরেক্টরি যেটিতে অনেকগুলি সাব-ডিরেক্টরি রয়েছে, তাদের প্রত্যেকটির নাম Jdk মেজর সংস্করণ হিসাবে একই। উদাহরণস্বরূপ, Jdk 9 এর জন্য নির্দিষ্ট ক্লাস, সেখানে একটি META-INF/versions/9 ডিরেক্টরি আছে . Jdk 10 এর জন্য নির্দিষ্ট ক্লাসের জন্য, META-INF/versions/10 আছে .
- jar-root - C1.class - C2.class - C3.class - C4.class - META-INF - MANIFEST.MF - versions - 9 - C2.class - C5.class - 10 - C1.class - C2.class - C6.class