Java 9 - JAR de várias versões
No java 9, um novo recurso é introduzido onde um formato jar foi aprimorado para ter diferentes versões da classe java ou recursos podem ser mantidos e usados de acordo com a plataforma. Em JAR, um arquivo MANIFEST.MF possui uma entrada Multi-Release:true em sua seção principal. O diretório META-INF também contém um subdiretório de versões cujos subdiretórios (começando com 9 para Java 9 ) armazenam classes e arquivos de recursos específicos da versão.
Neste exemplo, usaremos um jar multi-release para ter duas versões do arquivo Tester.java, uma para jdk 7 e outra para jdk 9 e executá-lo em diferentes versões do jdk.
Etapas
Etapa 1 − Crie uma pasta c:/test/java7/com/tutorialspoint. Crie Test.java com o seguinte conteúdo -
Testador.java
Demonstração ao vivopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); } }
Etapa 2 − Crie uma pasta c:/test/java9/com/tutorialspoint. Crie Test.java com o seguinte conteúdo -
Testador.java
Demonstração ao vivopackage com.tutorialspoint; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); } }
Compile os códigos-fonte.
C:\test > javac --release 9 java9/com/tutorialspoint/Tester.java C:\JAVA > javac --release 7 java7/com/tutorialspoint/Tester.java
Crie o jar de várias versões
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
Executar com JDK 7
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 7
Executar com JDK 9
C:\JAVA > java -cp test.jar com.tutorialspoint.Tester Inside Java 9
Java