Hi, replying to a few emails at once.

The ant-build-system uses zip -0 to produce an uncompressed archive. By 
default, jar produces a compressed one, so there's a repack phase for that:
 
http://git.savannah.nongnu.org/cgit/guix.git/tree/guix/build/ant-build-system.scm#n226

Embedding the classpath in the manifest is possible but would not have the 
expected effect. That's because a line in the manifest cannot exceed 72 bytes 
(see "line length" in 
https://docs.oracle.com/javase/8/docs/technotes/guides/jar/jar.html#Notes_on_Manifest_and_Signature_Files),
 so the classpath will look like:

Class-Path: ../../../1234567891011
 1213141516/share/java/foo.jar

Although java would read that fine, the grafter will not see it, nor be able to 
graft foo in a meaningful manner: java would still use the ungrafted version 
even if another file references foo.

Le 18 octobre 2022 16:56:01 GMT+02:00, Maxim Cournoyer 
<maxim.courno...@gmail.com> a écrit :
>Hello,
>
>Maxim Cournoyer <maxim.courno...@gmail.com> writes:
>
>> Tobias Geerinckx-Rice <m...@tobias.gr> writes:
>
>[...]
>
>>> Groan.  Which package(s) compress .jars?
>>
>> Oh, aren't they all?  I hadn't realized .jar compression was optional.
>
>Actually, reading [0] again, it seems a JAR *is* a zip archive, so
>cannot be either compressed or uncompressed.
>
>[0]  https://docs.oracle.com/en/java/javase/19/docs/specs/jar/jar.html
>
>-- 
>Thanks,
>Maxim

Reply via email to