IDEA将JavaFx打包为exe Win+Mac+Linux多平台分发等等

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,将对应不需要的文件替换,从而达到减少内存体积。

创作不易,写文章也花长时间,你觉得对你有帮助请给我点个赞!一健三连…谢谢啦!

posted @ 2022-09-16 00:08  凌康  阅读(895)  评论(0编辑  收藏  举报