Modern Java Module-Based Packaging
Oracle's discontinuation of Java Web Start has necessitated developers to adopt new deployment mechanisms for JavaFX applications. Deploying JavaFX 11 applications involves bundling them with a JRE, following a modular approach.
Creating a Module Descriptor
The first step is to convert your application into a module by creating a module-info.java file with a unique module name.
module com.mcs75.businessapp { exports com.mcs75.desktop.businessapp; requires java.logging; requires transitive javafx.graphics; requires transitive javafx.controls; }
Compiling, Packaging, and JMod Creation
Build using a module path instead of a classpath. Create a modular jar using the jar command. Then, create a jmod using the JDK's jmod tool.
javac -Xlint -g -d build/classes --module-path /opt/gluon-javafx/lib \ src/java/com/mcs75/desktop/businessapp/*.java jar -c -f build/mybusinessapp.jar -C build/classes . jmod create --class-path build/mybusinessapp.jar \ --main-class com.mcs75.desktop.businessapp.BusinessApplication \ build/modules/mybusinessapp.jmod
Linking the Image
Finalize the deployment by assembling the modules and a minimal JRE using the jlink command.
jlink --output build/image \ --module-path build/modules:/opt/gluon-javafx/lib \ --add-modules com.mcs75.businessapp \ --launcher MyBusinessApp=com.mcs75.businessapp
Distributing the Application
Package and distribute the entire image file tree as a zip or tar.gz. The executable script for users to run is located in the image's bin directory.
Cross-Platform Deployment
To create images for other platforms, specify the target platform in the jmod command using the --target-platform option and explicitly include the appropriate JDK's jmods directory.
This approach provides a modern and efficient way to deploy JavaFX 11 desktop applications with a JRE, without relying on discontinued technologies like Web Start.
The above is the detailed content of How to Deploy a JavaFX 11 Desktop Application with a JRE Using Modern Modular Packaging?. For more information, please follow other related articles on the PHP Chinese website!