Den søn. 16. des. 2018 kl. 14:27 skrev Andy Herrick <andy.herr...@oracle.com>:
>
> The result of JDK-8213392 was not that there was any problem creating
> the package, but that the packaged app would not run, because the
> modules from the --module-path arg are never included in the packaged
> app, or referenced in the vm args used when launching java.

I gathered that eventually. So I moved my --module-path from jpackage
to jlink, thus packaging my application with the runtime image then
used with jpackage.

> It is not clear to me what  - new
> File(installDist.outputs.files.singleFile, "lib") - actually is. Is this
> already in the runtime you created (if so you do you need this line ?)
> (if not , 8213392 will prevent it from being included in your app.)

The gradle task installDist assembles my application with all its
dependencies under bulld/install/app/,
and that File is just to avoid hard coding the path to its lib
directory with all my JARs.
I removed that --module-path when running jpackage and included it
instead with jlink.

> >> but it would still be advisable to run jlink first from the original 
> >> runtime image with the desired module path. to get a minimal runtime image 
> >> for your app.
> > I didn't quite understand what you meant with this.
> > I did run jlink first to create a Java 11 runtime image which I used
> > with jpackager.
> >      task createRuntime(type: Exec) {
> >          dependsOn installDist
> >
> >          doFirst {
> >              delete "${buildDir}/runtime"
> >          }
> >
> >          def libDir = new File(installDist.outputs.files.singleFile, 
> > "lib").path
> >
> >          commandLine 'jlink',
> >              '--module-path', "/usr/java/jdk-11/jmods:${libDir}",
> >              '--add-modules', 'no.smeaworks.movies',
> >              '--output', "${buildDir}/runtime"
> >      }
>
> which jlink are you running here  /usr/java/jdk-11/bin/jlink or
> /usr/java/jdk-12/bin/jlink ?
>
> in the first case you really are creating a Java 11 runtime with FX, in
> the second case you are creating a Java 12 runtime with FX from JDK-11
>
> (assuming FX is what is in "/usr/java/jdk-11/jmods:${libDir}")

It is running jlink from JDK 11.
The module path has the Java 11 jmods at /usr/java/jdk-11/jmods. My
application and all its dependencies which includes the FX at
${libDir}.

/Sverre

Reply via email to