È possibile creare più vasi. Perché deve essere un vaso singolo?
anche partendo con Java 1.7.0 costruire 55 Java supporta vasi e file zip più grandi di 4 GB, vedi questo post:
ZIP64, The Format for > 4G Zipfile, Is Now Supported
è anche possibile comprimere le immagini, utilizzare un formato diverso che li comprime a dimensioni più piccole quindi complessivamente saranno meno di 4 GB; considera la compressione con perdita come JPEG. Se sono già compressi al massimo, puoi prendere in considerazione la possibilità di ridurne le dimensioni (ad esempio 500 x 250 pixel anziché 1000 x 500).
Edit:
Citando formare javadoc di java.util.zip
package:
Un'implementazione eventualmente può supportare le estensioni formato ZIP64 (tm) definiti dal PKWARE ZIP File Format Specification. Le estensioni di formato ZIP64 (tm) vengono utilizzate per superare i limiti di dimensione del formato ZIP originale.
Quindi sembra che l'implementazione di Java sia supportata da Zip64, non è un requisito di specifica. Il primo link suggerisce però che OpenJDK lo supporta.
Inoltre Googleing un po 'sembra che tutti i JDK Oracle lo supportano dopo il rilascio menzionato (1.7.0 b55). Netbeans potrebbe negare di creare giare più grandi di 4 GB se è una vecchia versione o perché vuole mantenere la compatibilità con le JVM più vecchie.
Come sapere se il tuo Java lo supporta?
In caso di Oracle JRE/JDK: cercare il file rt.jar
(runtime.jar) di JRE/JDK. Aprilo (è un file zip) e vai nella cartella java/util/zip
. Se ha un file ZipConstants64.class
, ha il supporto per Zip64.
Da codice Java: provare ad acquisire l'oggetto Class
per la classe indicata. Se ci riesce, Oracle JRE/JDK lo sostiene:
System.out.println("Java version: " + System.getProperty("java.version"));
System.out.println("Java vendor: " + System.getProperty("java.vendor"));
try {
Class.forName("java.util.zip.ZipConstants64");
System.out.println("Your Java supports Zip64 :)");
} catch (ClassNotFoundException e) {
System.out.println("Your Java doesn't support Zip64 :(");
}
uscita:
Java version: 1.8.0_20
Java vendor: Oracle Corporation
Your Java supports Zip64 :)
Una cosa che potreste fare è quello di rimuovere tutte le immagini non necessarie e rendere il vostro app più leggero. Sono davvero necessarie quelle immagini? – BackSlash
Distribuisci le tue immagini in modo diverso? Forse un programma di installazione che mette le immagini sul filesystem esterno; allora potresti leggere le immagini da lì. –
@BackSlash Probabilmente posso ridurre le dimensioni un po ', ci provo prima. –