मल्टी-रिलीज़ JAR (mrjar)
एक मल्टी-रिलीज़ JAR (जिसे mrjar भी कहा जाता है) में एक ही लाइब्रेरी का एक ही रिलीज़ कई JDK संस्करणों के लिए होता है। इसका मतलब है कि हमारे पास एक लाइब्रेरी mrjar के रूप में हो सकती है जो JDK 9 के लिए काम करती है। mrjar में कोड क्लास फाइल्स होती हैं जो JDK 9 में संकलित होती हैं। JDK 9 के साथ संकलित क्लासेस JDK 9 द्वारा प्रदान किए गए APIs का लाभ उठा सकती हैं।
JAR निर्देशिका संरचना
mrjar पहले से मौजूद JAR की निर्देशिका संरचना को बढ़ा सकता है। इसमें एक रूट डायरेक्टरी होती है जहां इसकी सभी सामग्री रहती है और META-INF डायरेक्टरी जिसका उपयोग JAR के बारे में मेटाडेटा स्टोर करने के लिए किया जाता है। आमतौर पर, एक JAR में META-INF/MANIFEST.MF फाइल होती है जिसमें एट्रिब्यूट्स होते हैं।
सामान्य JAR प्रविष्टियाँ
- jar-root
- C1.class
- C2.class
- C3.class
- C4.class
- META-INF
- MANIFEST.MF
mrjar विस्तारित संरचना
META-INF डायरेक्टरी में versions सब-डायरेक्टरी होती है जिसमें कई सब-डायरेक्टरीज होती हैं, जिनमें से प्रत्येक का नाम 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
इस प्रकार, mrjar एक ही JAR फ़ाइल में कई JDK संस्करणों के लिए संस्करण-विशिष्ट क्लास फ़ाइलों की अनुमति देता है।