Java9-マルチリリースJAR
Java 9では、jar形式が拡張され、プラットフォームごとに異なるバージョンのJavaクラスまたはリソースを維持および使用できる新機能が導入されました。JARでは、ファイルMANIFEST.MFファイルのメインセクションにMulti-Release:trueというエントリがあります。META-INFディレクトリにはversionsサブディレクトリも含まれ、そのサブディレクトリ(Java 9の場合は9から始まります)にバージョン固有のクラスとリソースファイルが格納されます。
この例では、マルチリリースjarを使用して2つのバージョンのTester.javaファイルを作成します。1つはjdk 7用、もう1つはjdk 9用で、異なるjdkバージョンで実行します。
ステップ
Step 1−フォルダc:/ test / java7 / com / tutorialspointを作成します。次の内容でTest.javaを作成します-
Tester.java
package com.tutorialspoint;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 7");
}
}
Step 2−フォルダc:/ test / java9 / com / tutorialspointを作成します。次の内容でTest.javaを作成します-
Tester.java
package com.tutorialspoint;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 9");
}
}
ソースコードをコンパイルします。
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java
C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
マルチリリースjarを作成します
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.
Warning: entry META-INF/versions/9/com/tutorialspoint/Tester.java,
multiple resources with same name
JDK7で実行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 7
JDK9で実行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester
Inside Java 9