다중 버전 호환 JAR 함수를 사용하면 특정 버전의 Java 환경에서 라이브러리 프로그램을 실행할 때만 사용하도록 선택한 클래스 버전을 만들 수 있습니다. "--release를 통해 컴파일된 버전을 지정할 수 있습니다. " 매개변수.
특정 변경 사항은 "MANIFEST.MF "META-INF의 " 파일 " 디렉토리에는 아래와 같은 새 속성이 있습니다.
Multi-Release: true
"META-INF 아래에 새 버전 디렉토리가 있습니다. " 디렉토리. Java 9 버전을 지원하려면 버전 디렉토리 아래에 9 디렉토리가 있습니다.
multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class
아래 예에서는 다중 버전 호환 JAR을 사용할 수 있습니다. "Test.java에서 두 가지 버전의 jar 패키지를 생성하는 함수 " 파일입니다. 하나의 버전은 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
다중 버전 호환 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
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