JAR tương thích với nhiều phiên bản hàm cho phép chúng tôi tạo phiên bản của một lớp mà chúng tôi chọn chỉ sử dụng khi chạy các chương trình thư viện trong một phiên bản cụ thể của môi trường Java. Chúng tôi có thể chỉ định phiên bản đã biên dịch thông qua " --release "tham số.
Một thay đổi cụ thể là " MANIFEST.MF "trong tệp" META-INF "thư mục có một thuộc tính mới như bên dưới
Multi-Release: true
Có một thư mục phiên bản mới trong " META-INF thư mục ". Nếu chúng tôi muốn hỗ trợ phiên bản Java 9, có một thư mục 9 trong thư mục phiên bản.
multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class
Trong ví dụ dưới đây, chúng tôi có thể sử dụng JAR tương thích với nhiều phiên bản hàm để tạo hai phiên bản của gói jar từ " Test.java "tệp. Một phiên bản là jdk 7 và một phiên bản khác là jdk 9 , sau đó chúng tôi thực thi nó trong các môi trường khác nhau.
Bước đầu tiên: Tạo thư mục C:/ test / java7 / com / tutorialspoint và tạo một " Test.java "trong thư mục này như bên dưới:
package com.tutorialspoint; public class Test { public static void main(String args[]) { System.out.println("Inside Java 7"); } }
Bước thứ hai: Tạo thư mục C:/ test / java9 / com / tutorialspoint và tạo một " Test.java "trong thư mục này như bên dưới:
package com.tutorialspoint; public class Test { public static void main(String args[]) { System.out.println("Inside Java 9"); } }
Chúng tôi có thể biên dịch mã như sau:
C:\test> javac --release 9 java9/com/tutorialspoint/Test.java C:\test> javac --release 7 java7/com/tutorialspoint/Test.java
Chúng tôi có thể tạo gói jar tương thích với nhiều phiên bản như bên dưới
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
Sử dụng JDK 7 để thực thi:
C:\JAVA> java -cp test.jar com.tutorialspoint.Test Inside Java 7
Sử dụng JDK 9 để thực thi:
C:\JAVA> java -cp test.jar com.tutorialspoint.Test Inside Java 9