Java 9 - JAR met meerdere releases
In Java 9 wordt een nieuwe functie geïntroduceerd waarbij een jar-indeling is verbeterd om verschillende versies van Java-klasse of bronnen te hebben die kunnen worden onderhouden en gebruikt volgens het platform. In JAR heeft een bestand MANIFEST.MF de vermelding Multi-Release:true in de hoofdsectie. De map META-INF bevat ook een submap met versies waarvan de submappen (beginnend met 9 voor Java 9) versiespecifieke klassen en bronbestanden bevatten.
In dit voorbeeld gebruiken we een jar met meerdere releases om twee versies van het bestand Tester.java te hebben, één voor jdk 7 en één voor jdk 9 en deze op verschillende jdk-versies uit te voeren.
Stappen
Stap 1 − Maak een map c:/test/java7/com/tutorialspoint aan. Maak Test.java met de volgende inhoud −
Tester.java
Live demopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
Stap 2 − Maak een map c:/test/java9/com/tutorialspoint aan. Maak Test.java met de volgende inhoud −
Tester.java
Live demopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
Compileer de broncodes.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Maak de multi-release pot
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
Uitvoeren met JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Uitvoeren met JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java