Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Java

Công dụng của multi-version compatible JAR trong Java 9?

Multi-version compatible JAR cho phép tạo phiên bản class chỉ dùng khi chạy thư viện trong phiên bản Java environment cụ thể. Chỉ định phiên bản biên dịch qua tham số --release.

Thay đổi cụ thể: file MANIFEST.MF trong thư mục META-INF có attribute mới:

Multi-Release: true

Có thư mục version mới dưới META-INF. Muốn hỗ trợ Java 9, có thư mục 9 dưới versions.

multirelease.jar
├── META-INF
│   └── versions
│       └── 9
│           └── multirelease
│               └── Helper.class
├── multirelease
│   ├── Helper.class
│   └── Main.class

Ví dụ dưới dùng multi-version compatible JAR tạo hai phiên bản jar từ file Test.java. Phiên bản JDK 7 và JDK 9, chạy ở môi trường khác nhau.

Bước 1: Tạo thư mục C:/test/java7/com/tutorialspoint, tạo file Test.java:

package com.tutorialspoint;
public class Test {
    public static void main(String args[]) {
        System.out.println("Inside Java 7");
    }
}

Bước 2: Tạo thư mục C:/test/java9/com/tutorialspoint, tạo file Test.java:

package com.tutorialspoint;
public class Test {
    public static void main(String args[]) {
        System.out.println("Inside Java 9");
    }
}

Biên dịch:

C:\test> javac --release 9 java9/com/tutorialspoint/Test.java
C:\test> javac --release 7 java7/com/tutorialspoint/Test.java

Tạo multi-version compatible jar:

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

Chạy JDK 7:

C:\JAVA> java -cp test.jar com.tutorialspoint.Test
Inside Java 7

Chạy JDK 9:

C:\JAVA> java -cp test.jar com.tutorialspoint.Test
Inside Java 9