Java 9 Multirelease JAR: Memanfaatkan Versi Kelas Spesifik Platform
Dalam Java 9, fitur baru diperkenalkan di mana format jar telah ditingkatkan untuk memiliki versi yang berbeda dari kelas atau sumber daya Java yang dapat dipertahankan dan digunakan sesuai platform. Dalam JAR, berkas MANIFEST.MF memiliki entri Multi-Release: true di bagian utamanya. Direktori META-INF juga berisi subdirektori versions yang subdirektorinya (dimulai dengan 9 untuk Java 9) menyimpan berkas kelas dan sumber daya yang spesifik versi.
Dalam contoh ini, kita akan menggunakan multi-release jar untuk memiliki dua versi berkas Tester.java, satu untuk jdk 7 dan satu untuk jdk 9 dan menjalankannya pada versi jdk yang berbeda.
Langkah-langkah
Langkah 1 − Buat folder c:/test/java7/com/tutorialspoint. Buat Test.java dengan konten berikut −
Tester.java
Live Demo
package com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } } Langkah 2 − Buat folder c:/test/java9/com/tutorialspoint. Buat Test.java dengan konten berikut −
Tester.java
Live Demo
package com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } } Kompilasi kode sumber.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Buat multi-release 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
Jalankan dengan JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Jalankan dengan JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9