I'm following the tutorial here and using openjdk 11.0.2
and javafx-sdk-11.0.2
.
I've imported the maven project in Eclipse. The project actually compiles and packages just fine. It also created the jar file in /target directory.
The problem is, I want to export a single executable for my application which also embeds the necessary JRE in itself (so there would be no need to have a JRE installed on the target machine).
Here is the actual project .
How can I automate the generation of the standalone executable in maven? I want a single exe if possible.
Studying other questions here on SO, I think there is no way to produce a single EXE that includes the JRE. However, the tools mentioned can produce an EXE that can be put alongside a "jre" directory.
Using the JavaPackager Maven plugin, this can actually be achieved quite easily, simply by adding something like this in your POM:
<plugin>
<groupId>io.github.fvarrui</groupId>
<artifactId>javapackager</artifactId>
<version>1.6.2</version>
<executions>
<execution>
<phase>package</phase>
<goals>
<goal>package</goal>
</goals>
<configuration>
<mainClass>...</mainClass>
<bundleJre>true</bundleJre>
<platform>windows</platform>
</configuration>
</execution>
</executions>
</plugin>
Running mvn package
will generate a directory inside "target" that contains the EXE, a "jre" directory and a "libs" directory. The plugin can also generate an installer file.
Obviously, for different platforms you need to adjust the config, but I tested this on Windows with JDK 16 and 17, and it seems to work fine.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With