Package JavaFX applications
You can package your JavaFX application by building the corresponding artifact (a Java archive). For JavaFX applications, IntelliJ IDEA provides a dedicated artifact type: JavaFx Application.
warning
Packaging a JavaFX application in .jar is possible only with Java 8. For Java 11 and later, use the jlink tool to package your application.
IntelliJ IDEA creates the artifact for packaging the application together with the project. However, you can create a new artifact configuration with your custom settings.
In the main menu, go to File | Project Structure CtrlAltShift0S and click Artifacts.
Click , point to JavaFx Application, and select From module '...'.
IntelliJ IDEA creates the artifact configuration and shows its settings in the right-hand part of the Project Structure dialog.
Name the new configuration.
Switch to the JavaFX tab and in the Application class field, specify the
main()
method.Apply the changes and close the dialog.
tip
This is a basic configuration that is sufficient to package an application. You can specify additional options on the JavaFX tab. For the detailed description of each option, refer to Java FX tab.
In the main menu, go to Build | Build Artifacts.
In the popup that opens, select the necessary artifact and select Build.
By default, the artifact is generated to <project_folder>
tip
If you want to make sure that your artifact is built correctly, create a new run configuration and run it as described in the section Run the packaged application.
Error:Java FX Packager: Can't build artifact – fx:deploy is not available in this JDK
The fx:deploy task was a part of the Ant plugin that was formerly distributed in ant-javafx.jar as a part of Java Packager. The Ant plugin is not included in jpackage in the current JDK versions.
If you're using a JDK build of version 9 and later, use third-party solutions for packaging. For example, refer to section Runtime images in the JavaFX official documentation. You can find more options for packaging on Stack Overflow.
You can package your application using jlink or use a JDK with JavaFX included, for example, the Bellsoft Liberica JDK 11.
Thanks for your feedback!