IDEA将JavaFx打包为exe Win+Mac+Linux多平台分发等等
前面介绍到了用packr打包javafx17为exe多平台分发,比较复杂,这篇则介绍用idea直接打包exe,比较简单,但是需要注意的是Maven依赖的添加。
使用idea打包的exe会把整个jdk给打包进去,体积比较大,自己可以修改这个打包内容,从而做到减少体积。
一、准备一个javafx项目
这是我用jdk8+fastjson+okhttp+fontawesome+jfoenix+controlsfx
开发的一个demo:
算是稍微有点复杂吧?
二、IDEA打包exe
idea中 File》Proiect Structure》Artfacts
添加javafx application
只需修改两处地方,即启动入口和本地包,Native bundle选择all,注意我用的是idea2020.3.4,若没有javafx这个选项,请考虑更换idea版本!!!
然后点构建:
这时你会发现它在out下生成了一个out\artifacts\jdownload\bundles\jdownload\jdownload.exe
:
运行它你会发现运行不了:
添加Maven依赖
这时因为缺少Maven依赖,打包时没有将maven依赖囊括进来,我们执行Maven命令来将所有Maven依赖导出,手动导入到这个exe的运行环境:
当然,如果你对java的运行环境有点熟悉,那么在打包的时候就能囊括进来,这里按最简单的方法演示
mvn dependency:copy-dependencies -DoutputDirectory=lib
将导出的依赖复制到:out\artifacts\jdownload\bundles\jdownload\runtime\lib\ext
下面
再运行一次out\artifacts\jdownload\bundles\jdownload\jdownload.exe
,,你就发现它起来了!
至此打包exe完成,哪些图标版本什么的可自行配置。
不难看出,idea它是将所有jdk都copy过去,我们可以下载一个官网的openjdk,将对应不需要的文件替换,从而达到减少内存体积。
创作不易,写文章也花长时间,你觉得对你有帮助请给我点个赞!一健三连…谢谢啦!