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