> > 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.sten...@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 <zjx001...@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. >