Proposal: jar option to disable compression for selected file extensions

Eirik Bjørsnøs eirbjo at gmail.com
Mon Dec 16 11:38:29 UTC 2024


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.

Feedback on this proposal is welcome. (I have a draft implementation
around, but let's focus on the merits of the proposal before we dive into
any code)

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


More information about the core-libs-dev mailing list