মাল্টি-সংস্করণ সামঞ্জস্যপূর্ণ JAR ফাংশন আমাদেরকে একটি ক্লাসের সংস্করণ তৈরি করতে দেয় যা আমরা শুধুমাত্র জাভা পরিবেশের একটি নির্দিষ্ট সংস্করণে লাইব্রেরি প্রোগ্রাম চালানোর সময় ব্যবহার করতে পছন্দ করি। আমরা "--রিলিজ এর মাধ্যমে সংকলিত সংস্করণটি নির্দিষ্ট করতে পারি " প্যারামিটার৷
৷একটি নির্দিষ্ট পরিবর্তন হল "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