Proposal: jar option to disable compression for selected file extensions

Alan Bateman alan.bateman at oracle.com
Mon Dec 16 20:21:53 UTC 2024


On 16/12/2024 11:38, Eirik Bjørsnøs wrote:
> Hi,
>
> I would like to socialize the idea of adding a new option to the jar 
> tool to disable ZIP compression for selected file extensions.
>
> The jar tool currently supports disabling ZIP compression altogether 
> for an archive using the -0 --no-compress options.
>
> However, different file types have different compression 
> characteristics. Already compressed files such as JPEG, PNG have 
> little to gain by deflate compression, and the compression and 
> decompression of such files is mostly a waste of effort. The same is 
> true for archive formats such as ZIP, JAR, GZ etc.
>
> I propose that we add a new option, tentatively named 
> "--no-compress-ext", which would take a colon-separated list of file 
> extensions to disable ZIP compression for:
>
> jar --create --file archive.jar --no-compress-ext=.jpg:.png:.gz -C dir .
>
> This would work similarly to the zip -n option, see zip --help:
>
>     -n   don't compress these suffixes
>
>
> In context, the jar --help command could look something like this:
>
>       -0, --no-compress          Store only; use no ZIP compression
>           --no-compress-ext=EXT  Disable compression for selected file
>     extensions,
>                                  e.g.
>     "--no-compress-ext=.zip:.jar:.jpg:.png"
>
>
> I specifically do not suggest that we should define any kind of 
> default for this option. This should be entirely up to the user.
>
It would be useful to have some data on inflating for store-only vs. 
compression for these resources to get some sense on what the benefit 
would be.

For your prototype then you could try extending the existing 
--no-compress with an optional value. That would make it store only or 
store only for entries with specific suffixes.

-Alan
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.org/pipermail/core-libs-dev/attachments/20241216/e75f4dff/attachment.htm>


More information about the core-libs-dev mailing list