बहु-संस्करण संगत JAR फ़ंक्शन हमें एक वर्ग का संस्करण बनाने की अनुमति देता है जिसे हम केवल जावा वातावरण के विशिष्ट संस्करण में लाइब्रेरी प्रोग्राम चलाते समय उपयोग करने के लिए चुनते हैं। हम संकलित संस्करण को "--release . के माध्यम से निर्दिष्ट कर सकते हैं "पैरामीटर।
एक विशिष्ट परिवर्तन यह है कि "MANIFEST.MF "META-INF . में फ़ाइल करें " निर्देशिका में नीचे के रूप में एक नई विशेषता है
Multi-Release: true
"META-INF . के अंतर्गत एक नई संस्करण निर्देशिका है " निर्देशिका। यदि हम जावा 9 संस्करण का समर्थन करना चाहते हैं, तो संस्करण निर्देशिका के अंतर्गत एक 9 निर्देशिका है।
multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class
नीचे दिए गए उदाहरण में, हम एक बहु-संस्करण संगत JAR का उपयोग कर सकते हैं "Test.java . से जार पैकेज के दो संस्करण उत्पन्न करने के लिए कार्य करता है " फ़ाइल। एक संस्करण है jdk 7, और दूसरा संस्करण है jdk 9 , फिर हम इसे विभिन्न वातावरणों में निष्पादित करते हैं।
पहला चरण: एक फ़ोल्डर बनाएँ C:/test/java7/com/tutorialspoint , और एक "Test.java . बनाएं " इस फोल्डर में नीचे के रूप में फाइल करें:
package com.tutorialspoint; public class Test { public static void main(String args[]) { System.out.println("Inside Java 7"); } }
>दूसरा चरण: एक फ़ोल्डर बनाएँ C:/test/java9/com/tutorialspoint , और एक "Test.java . बनाएं " इस फोल्डर में नीचे के रूप में फाइल करें:
package com.tutorialspoint; public class Test { public static void main(String args[]) { System.out.println("Inside Java 9"); } }
हम नीचे दिए गए कोड को संकलित कर सकते हैं:
C:\test> javac --release 9 java9/com/tutorialspoint/Test.java C:\test> javac --release 7 java7/com/tutorialspoint/Test.java
हम एक बहु-संस्करण संगत जार पैकेज बना सकते हैं नीचे के रूप में
C:\JAVA> jar -c -f test.jar -C java7 . --release 9 -C java9 Warning: entry META-INF/versions/9/com/tutorialspoint/Test.java, multiple resources with same name
निष्पादित करने के लिए JDK 7 का उपयोग करें:
C:\JAVA> java -cp test.jar com.tutorialspoint.Test Inside Java 7
निष्पादित करने के लिए JDK 9 का उपयोग करें:
C:\JAVA> java -cp test.jar com.tutorialspoint.Test Inside Java 9