No subject

Mark Raynsford jigsaw-dev at io7m.com
Sat Nov 11 21:18:21 UTC 2023


Hello!

I have multiple applications that are modularized; all of the
application modules are named modules and make heavy use of services.
However, I do have many (transitive) dependencies that are only
automatic modules (using Automatic-Module-Name declarations in the
manifests).

I want to use jpackage to produce platform-specific application
distributions, but the automatic modules are causing me problems.
Essentially, as far as I can tell, there are exactly two approaches
that jpackage will take:

  1. Put all of your application jars inside an app directory inside
     the app image, and configure the runtime such that all of those
     jars end up on the class path.
  
  2. Take all of the application modules and compile them into the
     resulting app image runtime using jlink.

It would _really_ help myself (and possibly others, given that I've
never seen a Java application consisting of 100% named modules) if
there was a third option:

  3. Take all of the application jars and place them inside an app
     directory inside the app image, and configure the runtime such
     that all of those jars _end up on the module path_.

Effectively, I'd like a runtime that behaves as if "java -p app"
had been specified on the command-line. I don't care about minimizing
the size of the runtime with jlink by discarding unused modules. I
_do_ care about having a nice double-clickable exe on Windows that
has a nice icon, identifies itself properly in Process Explorer, and
has all of my jars on the module path so that the services work.

Is anything like this on the horizon? I believe I've published more
JPMS modules than any other individual on the planet, but I've never
been able to make any use of jlink due to the entire world not having
been modularized. I don't want to be rewriting my dependencies with
Moditect and other tools: My dependencies already work correctly on the
module path, I just can't seem to get them into anything jpackage will
produce!

-- 
Mark Raynsford | https://www.io7m.com



More information about the jigsaw-dev mailing list