Java9-multirelease-jar

提供:Dev Guides
移動先:案内検索

Java 9-マルチリリースJAR

Java 9では、jar形式が拡張され、プラットフォームごとに異なるバージョンのjavaクラスまたはリソースを維持および使用できるようになった新しい機能が導入されました。 JARでは、ファイルMANIFEST.MFファイルのメインセクションにエントリMulti-Release:trueがあります。 META-INFディレクトリには、バージョン固有のクラスとリソースファイルを格納するサブディレクトリ(Java 9では9から始まる)のバージョンサブディレクトリも含まれます。

この例では、マルチリリースjarを使用してTester.javaファイルの2つのバージョン(jdk 7用とjdk 9用)を作成し、異なるjdkバージョンで実行します。

ステップ

  • ステップ1 *-フォルダーc:/test/java7/com/finddevguidesを作成します。 次の内容でTest.javaを作成します-

Tester.java

package com.finddevguides;

public class Tester {
   public static void main(String[] args) {
      System.out.println("Inside java 7");
   }
}
  • ステップ2 *-フォルダーc:/test/java9/com/finddevguidesを作成します。 次の内容でTest.javaを作成します-

Tester.java

package com.finddevguides;

public class Tester {
   public static void main(String[] args) {
      System.out.println("Inside java 9");
   }
}

ソースコードをコンパイルします。

C:\test > javac --release 9 java9/com/finddevguides/Tester.java

C:\JAVA > javac --release 7 java7/com/finddevguides/Tester.java

マルチリリースjarを作成する

C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9.
Warning: entry META-INF/versions/9/com/finddevguides/Tester.java,
   multiple resources with same name

JDK 7で実行

C:\JAVA > java -cp test.jar com.finddevguides.Tester
Inside Java 7

JDK 9で実行

C:\JAVA > java -cp test.jar com.finddevguides.Tester
Inside Java 9