Java 9 - JAR หลายรุ่น

ใน java 9 คุณลักษณะใหม่ถูกนำมาใช้ซึ่งรูปแบบ jar ได้รับการปรับปรุงให้มีคลาส java หรือทรัพยากรเวอร์ชันต่างๆสามารถดูแลและใช้งานได้ตามแพลตฟอร์ม ใน JAR ไฟล์ MANIFEST.MF จะมีรายการ Multi-Release: true ในส่วนหลัก ไดเร็กทอรี META-INF ยังมีไดเร็กทอรีย่อยเวอร์ชันที่มีไดเร็กทอรีย่อย (เริ่มต้นด้วย 9 สำหรับ Java 9) เก็บคลาสเฉพาะเวอร์ชันและไฟล์รีซอร์ส

ในตัวอย่างนี้เราจะใช้ jar แบบหลายรุ่นเพื่อให้มีไฟล์ Tester.java สองเวอร์ชันหนึ่งสำหรับ jdk 7 และอีกเวอร์ชันหนึ่งสำหรับ 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

สร้างโถหลายรุ่น

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