Java 9 - マルチリリース JAR
Java 9 では、さまざまなバージョンの Java クラスまたはリソースをプラットフォームごとに維持および使用できるように jar 形式が拡張された新しい機能が導入されました。 JAR では、MANIFEST.MF ファイルのメイン セクションに Multi-Release:true というエントリがあります。 META-INF ディレクトリには、バージョン固有のクラスとリソース ファイルを格納するサブディレクトリ (Java 9 の場合は 9 から始まる) バージョン サブディレクトリも含まれます。
この例では、マルチリリース jar を使用して、jdk 7 用と jdk 9 用の 2 つのバージョンの Tester.java ファイルを作成し、異なるバージョンの jdk で実行します。
歩数
ステップ 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"); } }
ステップ 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
JDK 7 で実行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
JDK 9 で実行
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java