JavaFX在windows上通过jpackage打包为免安装的exe

📅 2026/7/3 9:14:35 👁️ 阅读次数 📝 编程学习
JavaFX在windows上通过jpackage打包为免安装的exe

有个javaFX的应用想在windows上直接通过exe运行,不要安装过程,免安装的,步骤如下:

一、基础环境:

jdk:java 17.0.4.1 2022-08-18 LTS

javafx:21.0.2

javafx-sdk:21.0.11 

 

pom配置如下:

    <properties><maven.compiler.source>17</maven.compiler.source><maven.compiler.target>17</maven.compiler.target><project.build.sourceEncoding>UTF-8</project.build.sourceEncoding><javafx.version>21.0.2</javafx.version><main.class>com.videoUtils.MainApp</main.class></properties><dependencies><!-- JavaFX --><dependency><groupId>org.openjfx</groupId><artifactId>javafx-controls</artifactId><version>${javafx.version}</version></dependency><dependency><groupId>org.openjfx</groupId><artifactId>javafx-fxml</artifactId><version>${javafx.version}</version></dependency><dependency><groupId>org.openjfx</groupId><artifactId>javafx-media</artifactId><version>${javafx.version}</version></dependency><!-- SLF4J for logging --><dependency><groupId>org.slf4j</groupId><artifactId>slf4j-simple</artifactId><version>2.0.9</version></dependency></dependencies>

  

 

二、下载javafx-sdk

下载地址:https://gluonhq.com/products/javafx/

image

 

解压后放到D:\library\javafx-sdk-21.0.11

 

三、执行jpackage命令

首先,执行maven的package打包(jpackage需要用target的jar包)

 

接着,切换目录:

cd C:\Program Files\Java\jdk-17.0.4.1\bin\

 

最后,执行jpackage命令:

jpackage.exe  --name VideoMerger   --input "E:\video-utils\target"   --main-jar E:\video-utils\target\video-utils-1.0.0.jar   --main-class com.videoUtils.MainApp  --type app-image   --icon E:\video-utils\src\main\resources\icon.ico   --dest "E:\video-utils\dist" --module-path "D:\library\javafx-sdk-17.0.19\lib"  --add-modules javafx.controls,javafx.fxml,javafx.media --java-options "--add-modules javafx.controls,javafx.fxml,javafx.media"

 

打开exe文件,如果出现Child process exited with code 1 需要把D:\library\javafx-sdk-21.0.11\bin的内容都复制到E:\video-utils\dist\VideoMerger\app目录。然后打开exe文件即可解决。

image