How to create a fat jar for my JavaFX program?

Michael Paus mp at
Mon Jul 20 17:47:54 UTC 2020

Am 20.07.20 um 19:40 schrieb Nir Lisker:
> In addition to the other answers, you can look into GraalVM's native image:
GraalVM native-image does not work directly with JavaFX. You would have to
use the Gluon client-maven-plugin 
to get that going but I would not recommend that as a first try because 
it is just too difficult.
You can try that step later.
> On Mon, Jul 20, 2020 at 8:25 PM Davide Perini <perini.davide at>
> wrote:
>> Unfortunantly so few dependencies supports Java Modules this day, so fat
>> JAR is the only way I can do it.
>> Thanks
>> Il 20/07/2020 02.50, Scott Palmer ha scritto:
>>> The JavaFX classes are there, but what about the native libraries?
>>> A fat jar isn’t a good way to distribute a Java application these days.
>> Now you should probably be using jpackage and/or jlink to bundle your
>> application classes with a runtime suitable for running the application.
>>> Scott
>>>> On Jul 19, 2020, at 5:32 PM, Davide Perini <
>> perini.davide at> wrote:
>>>> Hi all,
>>>> thanks for the great project, I love JavaFX.
>>>> I always used the maven plugin to crete fat jars with all my deps. The
>> resulting jar is an executable one and ready to use.
>>>> This is my pom that create the fat jar.
>>>> but when I try to exceute the jar I get this error:
>>>> Error: JavaFX runtime components are missing, and are required to run
>> this appli
>>>> cation
>>>> if I explode the fat jar I can see that there are the javafx class in
>> it. what am I doing wrong?
>>>> Thanks
>>>> Davide
>>>> <plugin> <groupId>org.openjfx</groupId>
>> <artifactId>javafx-maven-plugin</artifactId>
>> <version>${javafx.maven.plugin.version}</version> <configuration>
>> <mainClass>org.dpsoftware.FastScreenCapture</mainClass> </configuration>
>> </plugin> <plugin> <groupId>org.apache.maven.plugins</groupId>
>> <artifactId>maven-assembly-plugin</artifactId> <configuration>
>> <outputDirectory>${}/</outputDirectory>
>> <finalName>JavaFastScreenCapture</finalName> </configuration> <executions>
>> <execution> <id>make-executable-jar-with-dependencies</id>
>> <phase>package</phase> <goals> <goal>single</goal> </goals> <configuration>
>> <archive> <manifest> <addClasspath>true</addClasspath>
>> <mainClass>org.dpsoftware.FastScreenCapture</mainClass> </manifest>
>> </archive> <descriptorRefs>
>> <descriptorRef>jar-with-dependencies</descriptorRef> </descriptorRefs>
>> </configuration> </execution> </executions> </plugin>

More information about the openjfx-dev mailing list