Mi sono imbattuto nel seguente problema: quando creo il file .jar
con più di 65.000 voci, java si lamenta "jarfile non valido o danneggiato". Esempio:Perché java si lamenta di file jar con molte voci?
$ # in fresh dir
$ for i in {1..70000}; do touch $i; done
$ jar cf app.jar {1..70000}
$ java -jar app.jar
Error: Invalid or corrupt jarfile app.jar
Ma se io uso un po 'meno file, funziona:
$ jar cf app.jar {1..60000}
$ java -jar app.jar
no main manifest attribute, in app.jar
Ho sentito che c'era limitano file 65k in formato .zip
vecchio file, ma Java 7 dovrebbero usare ZIP64 di default già. Perché sta succedendo? C'è un modo per risolverlo?
UN VASO è la variazione di Java di ZIP. Mentre potrebbe aver risolto alcuni problemi, potrebbe essere dietro per altri miglioramenti. Vi suggerisco di non mettere alcuni file in un JAR in primo luogo;) –
@PeterLawrey - Sì, suddividere i file tra diversi file .jar più piccoli è la soluzione ovvia, ma è molto goffo. Ad ogni modo, non è normale avere un limite così basso sull'importo del file. Forse c'è già un bug aperto su questo? – Rogach
Lo spero, ma puoi sempre registrarne un altro se non riesci a trovarlo. –