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

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

IDEA将JavaFx打包为exe Win+Mac+Linux多平台分发等等的更多相关文章

  1. Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux

    我用过的编辑器不少,真不少- 但却没有哪款让我特别心仪的,直到我遇到了 Sublime Text 2 !如果说“神器”是我能给予一款软件最高的评价,那么我很乐意为它封上这么一个称号.它小巧绿色且速度非 ...

  2. [转载]Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!跨平台支持Win/Mac/Linux

    代码编辑器或者文本编辑器,对于程序员来说,就像剑与战士一样,谁都想拥有一把可以随心驾驭且锋利无比的宝剑,而每一位程序员,同样会去追求最适合自己的强大.灵活的编辑器,相信你和我一样,都不会例外. 我用过 ...

  3. 高速下载百度网盘的方法,只需要一个软件【win/mac/linux】

    论坛里差不多全部都是用百度云的,但是官方百度云的限速,大家都懂的,下面教大家使用一个软件满速下载,不用油猴 1,软件支持mac,win64/32,linux.Linux只有自己编译使用,我也不会哈哈哈 ...

  4. Python代码打包成exe可执行程序

    首先,打包成exe可执行程序是针对windows平台来说的. 目前比较主流的打包工具就是pyinstaller. 参考:Using PyInstaller 首先安装pyinstaller: pip i ...

  5. Pyinstaller (python打包为exe文件)

    需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用,wi ...

  6. python进阶--打包为exe文件

    一.Python打包为EXE文件有不少方案,比较常用的有下面两种方式: 1.使用py2exe 详细介绍:http://www.cnblogs.com/jans2002/archive/2006/09/ ...

  7. Pyinstaller(python打包为exe文件)

      需求分析: python脚本如果在没有安装python的机器上不能运行,所以将脚本打包成exe文件,降低脚本对环境的依赖性,同时运行更加迅速. 当然打包的脚本似乎不是在所有的win平台下都能使用, ...

  8. 将Python程序打包为exe方法

    将Python程序打包为exe文件,需要使用到的工具是pyinstaller pyinstaller是一个多平台的Python程序打包为exe的免费工具 安装pyinstaller: 1,在Windo ...

  9. 将Python 程序打包成 .exe格式入门

    PyInstaller PyInstaller 是一个十分有用的第三方库,可以用来打包 python 应用程序,打包完的程序就可以在没有安装 Python 解释器的机器上运行了. 它能够在 Windo ...

  10. node代码打包为 exe文件---端口进程关闭demo

    最近用到 java,用tomcat起的服务,经常服务关了,对应的进程还在跑,导致再次启动服务失败,需要手动关闭进程. 使用 dos命令虽然只有两行,总是输,也很烦. netstat -ano | fi ...

随机推荐

  1. MySQL系列之主从复制基础——企业高可用性标准、主从复制简介、主从复制前提(搭建主从的过程)、主从复制搭建、主从复制的原理、主从故障监控\分析\处理、主从延时监控及原因

    文章目录 0.企业高可用性标准 *** 0.1 全年无故障率(非计划内故障停机) 0.2 高可用架构方案 1. 主从复制简介 ** 2. 主从复制前提(搭建主从的过程) *** 3. 主从复制搭建(C ...

  2. android 中service的简单事例

    源码 public class ServiceDemoActivity extends Activity { private static final String TAG = "Servi ...

  3. 数据链路层传输协议(点到点):停等协议、GBN、SR协议

    数据链路层的传输协议:停等协议.GBN.SR 停止等待协议(单窗口的滑动窗口协议) 滑动窗口协议:GBN.SR GBN协议 GBN发送方需响应的三件事 1. 上层调用(网络层) 上层要发送数据时,发送 ...

  4. 【虹科干货】Redis Enterprise vs ElastiCache——如何选择缓存解决方案?

    使用Redis 或 Amazon ElastiCache 来作为缓存加速已经是业界主流的解决方案,二者各有什么优势?又有哪些区别呢? 为了提高 Web 应用程序和数据驱动服务的性能与效率,使用 Red ...

  5. Jenkins软件平台安装部署

    1.Jenkins软件平台概念剖解: 基于主流的Hudson/Jenkins平台工具实现全自动网站部署.网站测试.网站回滚会大大的减轻网站部署的成本,Jenkins的前身为Hudson,Hudson主 ...

  6. 产品代码都给你看了,可别再说不会DDD(九):领域事件

    这是一个讲解DDD落地的文章系列,作者是<实现领域驱动设计>的译者滕云.本文章系列以一个真实的并已成功上线的软件项目--码如云(https://www.mryqr.com)为例,系统性地讲 ...

  7. 美团面试:Redis 除了缓存还能做什么?可以做消息队列吗?

    这是一道面试中常见的 Redis 基础面试题,主要考察求职者对于 Redis 应用场景的了解. 即使不准备面试也建议看看,实际开发中也能够用到. 内容概览: Redis 除了做缓存,还能做什么? 分布 ...

  8. HanLP — Aho-Corasick DoubleArrayTire 算法 ACDAT - 基于双数组字典树的AC自动机

    双数组字典树能在O(1)(1是模式串长度)时间内高速完成单串匹配,并且内存消耗可控,然而软肋在于多模式匹配.如果要匹配多个模式串,必须先实现前缀查询,然后频繁截取文本后缀才可多匹配.比如 ushers ...

  9. k8s-服务网格实战-配置 Mesh(灰度发布)

    在上一篇 k8s-服务网格实战-入门Istio中分享了如何安装部署 Istio,同时可以利用 Istio 实现 gRPC 的负载均衡. 今天我们更进一步,深入了解使用 Istio 的功能. 从 Ist ...

  10. go 中的循环依赖

    什么是循环依赖 Go 中的循环依赖是指两个或多个包之间相互引用,形成了一个循环依赖关系.这种情况下,包 A 依赖包 B,同时包 B 也依赖包 A,导致两个包之间无法明确地确定编译顺序,从而可能引发编译 ...