Alternative to fatJar - modular solution?
Samuel Audet
samuel.audet at gmail.com
Thu Oct 7 00:21:52 UTC 2021
Hi,
There are many reasons why modules have not become popular, but this is
a new interesting perspective. Thanks for bringing this up! I also
believe modules need to support uber JARs to become relevant...
Samuel
On 10/7/21 2:24 AM, Glavo wrote:
> For a long time, unpacking and repackaging all dependencies into a file
> called fatJar was the first choice for single file distribution of Java
> programs. However, the compatibility of this solution with JPMS is very
> poor - it breaks up all the modules and works with classpath.
>
> I think many programmers may expect JDK to provide a native lightweight
> solution that bundles multiple modules into a single file. From users'
> enthusiasm for fatjar, we can see that they have a keen demand for such
> a format. jlink and jpackage cannot solve the problem that fatjar wants
> to solve. We now have the jimage file format, but it seems that it is
> only the internal format of JDK and is only used in the modules file.
>
> The lack of such a solution has caused us some trouble about whether to
> modularize. So I earnestly request JDK to add support for such a file
> format:
>
> 1. It can bundle multiple modules in one file (It may be based on jimage
> or other compression/archive format).
>
> 2. It should only bundle application dependencies without carrying JDK
> standard library or even complete JRE.
>
> 3. It should have a manifest file like the MANIFEST.MF for jar,
> allows we to add descriptions of entry points, Add-Opens, module path,
> and so on.
>
> 4. Allows simple execution, such as `java -jimage foo.jimage`. In
> this case, use the contents described in the above manifest file.
>
> 5. Associate this file format during JDK/JRE installation, and
> execute it in the above manner when double clicking it.
>
> 6. Like the ZIP (JAR) format, allow other content to be appended
> before its content. This makes it easy to attach a launcher (usually
> exe or bash) before its content.
>
More information about the jigsaw-dev
mailing list