एक मल्टी-रिलीज़ जार (mrjar . के नाम से भी जाना जाता है) ) में एकाधिक Jdk . के लिए लाइब्रेरी का एक ही रिलीज़ शामिल है संस्करण . इसका मतलब है कि हमारे पास mrjar . के रूप में एक पुस्तकालय हो सकता है जो Jdk 9 के लिए काम करता है। mrjar . में कोड वर्ग . शामिल है फ़ाइलें Jdk 9 . में संकलित . Jdk 9 के साथ संकलित कक्षाएं Jdk 9 द्वारा पेश किए गए API का लाभ उठा सकती हैं।
द मर्जर एक जार की पहले से मौजूद निर्देशिका संरचना का विस्तार कर सकते हैं। इसमें एक रूट निर्देशिका . है जहां इसकी सभी सामग्री रहती है और 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 संस्करण के लिए विशिष्ट हो सकते हैं। मेटा-आईएनएफ निर्देशिका में संस्करण . है उप-निर्देशिका जिसमें कई उप-निर्देशिकाएँ हैं, उनमें से प्रत्येक का नाम Jdk प्रमुख संस्करण के समान है। उदाहरण के लिए, Jdk 9 के लिए विशिष्ट वर्ग, एक META-INF/संस्करण/9 निर्देशिका है . Jdk 10 के लिए विशिष्ट कक्षाओं के लिए, वहाँ है META-INF/संस्करण/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