Alternative to fatJar - modular solution?

Glavo zjx001202 at gmail.com
Wed Oct 6 19:45:17 UTC 2021


>
> I know this doesn't remotely satisfy all your requirements, but are you
> aware you can jpackage an app *without* bundling a JRE?
>

Ah, this is what I missed, but it won't solve any of my problems, otherwise
I have implemented a similar function by myself.

Sebastian Stenzel <sebastian.stenzel at gmail.com> 于2021年10月7日周四 上午2:06写道:

> Interesting topic and I'm keen to know what is the answer to the general
> problem of modular fat or shaded jars.
>
> I know this doesn't remotely satisfy all your requirements, but are you
> aware you can jpackage an app *without* bundling a JRE?
>
> > Am 06.10.2021 um 19:25 schrieb Glavo <zjx001202 at gmail.com>:
> >
> > 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