Java 9 Multi-release JAR: Platform-specifieke classversies benutten
In Java 9 is het JAR-formaat verbeterd zodat verschillende versies van Java-klassen of resources bewaard en gebruikt kunnen worden afhankelijk van het platform. In de JAR bevat het MANIFEST.MF-bestand in de hoofsectie de entry Multi-Release: true. De META-INF-directory bevat een versions-subdirectory wiens submappen (beginnend met 9 voor Java 9) versie-specifieke klassen en resourcebestanden bevatten.
In dit voorbeeld gebruiken we een multi-release JAR met twee versies van Tester.java, één voor JDK 7 en één voor JDK 9, en draaien we het op verschillende JDK-versies.
Stappen
Stap 1 – Maak map c:/test/java7/com/tutorialspoint. Maak Tester.java:
package com.tutorialspoint;
public class Tester {
public static void main(String[] args) {
System.out.println("Inside java 7");
}
}
Stap 2 – Maak map c:/test/java9/com/tutorialspoint. Maak Tester.java:
package 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 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
Draaien met JDK 7:
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Draaien met JDK 9:
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java
- Java-operators beheersen: typen, syntax en praktische voorbeelden
- Java-commentaar: typen, gebruik en best practices
- Java Enhanced For-lus beheersen: syntax, voorbeelden en best practices
- Java Strings beheersen: aanmaken, methodes en best practices
- Java interfaces meesteren: concepten, implementatie en best practices
- Java anonieme inner classes meesteren: definitie, syntax en praktische voorbeelden
- Java Try-with-resources meesteren: automatische resource management uitgelegd
- Java Annotaties uitgelegd: typen, plaatsing en praktische voorbeelden
- Java Assertions: een praktische gids voor bugdetectie en codebetrouwbaarheid
- Java Vector begrijpen: Gebruik, Kenmerken en Vergelijking met ArrayList
- Java 9 Multi-release JAR: Platform-specifieke classversies benutten