# javafx-package-example **Repository Path**: lichenfei_fei/javafx-package-example ## Basic Information - **Project Name**: javafx-package-example - **Description**: javafx 项目打包案例 - **Primary Language**: Java - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 31 - **Forks**: 5 - **Created**: 2022-07-29 - **Last Updated**: 2025-05-11 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # javafx-package-example ## 介绍 1. JavaFx 项目打包案例 2. 三种打包案例:三个项目(三个案例)。 3. 介绍: - 一:模块化打包,所需依赖必须是模块化项目,项目也必须支持模块化 **当然模块化项目坑比较多,不建议使用模块化项目。** 。 - 二:非模块打包,支持1.8及以上,配置maven插件即可完成打包 **推荐使用** 。 - 三:非模块化打包(jpackage命令,低版本不支持这个命令,我用的是17),运行main方法即可完成打包 **本人目前使用的** 。 4. 在打包过程中可能会出现各种问题,不要急,慢慢来。 5. 资金有限,只测试过Windows系统。 ### 一、模块化项目打包(module-package项目) 1. 注意:如果存在非模块化依赖,则打包不成功,需要对依赖进行处理(比较麻烦),尽量使用模块化依赖。 2. 配置maven插件:请查看module-package项目。 3. 执行命令打包:`mvn javafx:jlink`。 4. 运行成功后进入到打包的bin目录运行`application.start.bat`即可成功启动项目。 5. 将`application.start.bat`转换为exe文件(转换工具我放在项目/document/里边了)。 ``` 下载地址:https://crm-1254254286.cos.ap-guangzhou.myqcloud.com/1/Bat_To_Exe_Converter_(Installer).exe ``` 5. 生成的exe文件应在bin目录下(和`application.start.bat`在同级目录),否则生成的exe可能会启动失败! ### 二、非模块化项目打包(java-package项目) 1. 文档请参考: `https://github.com/fvarrui/JavaPackager`。 2. 配置maven插件:请查看java-package项目。 3. 执行命令打包: `mvn clean package` 4. target 文件夹下会生成一个java-package文件夹,运行里边的exe即可。 ### 三、非模块化项目打包(jpackage项目) 1. 下载WIX工具:https://wixtoolset.org 网络原因可能下载比较慢,可以直接在本项目中的/document/文件夹下获取。 2. 安装WIX工具。 3. 执行maven命令:`mvn package`。 4. 使用jpackage命令打包,或者直接运行我写的工具类`cn.lichenfei.jpackage.JPackage`。 5. 命令: ``` #非模块化打包方式: jpackage --type app-image -i lib -n 音乐播放器 --main-class [启动类包名] --main-jar [启动类所属jar名称] --icon [图标地址] #对于模块化 jpackage --type app-image -n name -p modulePath -m moduleName/className #命令说明: #打包类型:"app-image", "exe", "msi", "rpm", "deb", "pkg", "dmg"} --type -t #打包文件名称 --name , -n #包含全部jar文件的目录 --input , -i #启动应用的jar名称 --main-jar #入口类名称 --main-class #应用版本 --app-version #应用版权信息 --copyright #应用描述信息 --description #应用提供者 --vendor #应用图标 --icon ``` 5. 问题: 1. 程序运行错误。 - ![登录页面1](img/img.png) - 可能是因为使用jlink制作jre时出现问题: 放弃jlink,直接使用jpackage了。 - 目前没有好的解决方案。。。欢迎大家一起讨论!!!!!!!!!!!!!!!!! 2. 在win11环境下运行jpackage,发现生成的app文件夹下没有jar包,只有一个 `.cfg` 文件,这时候只需要将项目的所有依赖jar和项目jar放到app文件下后,即可运行程序。(具体什么原因没找到)另外,启动程序的.exe图标也需要自己替换。