English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
La funzione JAR compatibile con più versioni ti permette di creare versioni di classi da utilizzare solo in ambienti Java di specifiche versioni.
Specificare la versione di compilazione tramite il parametro --release.
Le variazioni specifiche sono che è stata aggiunta una nuova proprietà al file MANIFEST.MF nella directory META-INF:
Multi-Release: true
Poi è stata aggiunta una nuova directory versions nella directory META-INF, se si desidera supportare java9, allora nella directory versions c'è una directory 9.
multirelease.jar ├── META-INF │ └── versions │ └── 9 │ └── multirelease │ └── Helper.class ├── multirelease ├── Helper.class └── Main.class
In questo esempio, abbiamo utilizzato la funzione di JAR compatibile con più versioni per generare due versioni di pacchetti jar dal file Tester.java, una per jdk 7 e l'altra per jdk 9, poi abbiamo eseguito in diversi ambienti.
Primo passo
Crea la cartella c:/test/java7/com/w3codebox e crea il file Test.java nella cartella, il codice è il seguente:
package com.w3codebox; public class Tester { public static void main(String[] args) { System.out.println("Inside java 7"); {} {}
Secondo passo
Crea la cartella c:/test/java9/com/w3codebox e crea il file Test.java nella cartella, il codice è il seguente:
package com.w3codebox; public class Tester { public static void main(String[] args) { System.out.println("Inside java 9"); {} {}
Compilazione del codice sorgente:
C:\test > javac --release 9 java9/com/w3codebox/Tester.java C:\JAVA > javac --release 7 java7/com/w3codebox/Tester.java
Creazione di jar compatibili con più versioni
C:\JAVA > jar -c -f test.jar -C java7 . --release 9 -C java9. Attenzione: entry META-INF/versions/9/com/w3codebox/Tester.java, Risorse multiple con lo stesso nome
Esegui con JDK 7:
C:\JAVA > java -cp test.jar com.w3codebox.Tester Inside Java 7
Esegui con JDK 9:
C:\JAVA > java -cp test.jar com.w3codebox.Tester Inside Java 9