ZIP64, The Format for > 4G Zipfile, Is Now Supported
By xuemingshen on Apr 17, 2009
We heard you! finally:-)
The support for ZIP64, the format for > 4G ZIP file, has finally been added into the latest OpenJDK7 build(b55). This RFE (request for enhancements) had been buried in the 200+ Jar/ZIP bug/rfe pile so deep that I was not even aware of / remembered its existence until a recent call from A custom strongly asking for it. Given everyone now has 200G+ disk space (and yes, most of my kid's video clips are now around 1G after I got that new camcorder), it is relatively easy for the Jar/ZIP user to run into this 4G ceiling these days. The RFE was quickly climbing itself to the top of my to-do list and is now in b55. From now on only the sky is the limit for your Jar/ZIP file:-)
So if you have > 4G stuff (either the total size of files zipped in > 4G or the individual files themselves are > 4G) to jar/zip, try out the OpenJDK7-b55 (and later), either via the java.util.jar/zip APIs or the Jar tool. Let me know if you find anything not working or broken, I hope it's perfect though:-)
Here is the brief background info regarding the 4G size problem in Jar and ZIP file.
(1)Various size and position offset related fields in original ZIP format are 4 bytes, so by nature ZIP has this 4G size limitation.
(2)The field for total number of files zipped/stored in ZIP's Central directory record is 2 bytes, so it has the 65536 limit (Java's ZIP file implementation has some hacky code to workaround this issue though)
(3)ZIP64 format extensions was introduced in (in spec 4.5) to address above size limitation.
(4)JDK7 now fully supports the ZIP64(tm) format extensions
defined by the PKWARE's ZIP specification