最新JavaFx JDK17如何正确的打出可以使用的exe软件包

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、提前需要准备?
  • 二、打包步骤
    • 1.现将module-info.java删除 选中module-info.java 鼠标右键 Refactor 然后选择safe deleted
    • 2.编辑设置 路径 Run/edit Configurations
    • 3.设置Artifacts 快捷键 ctrl+alt+shift+s 也可以通过file /Project Structure
    • 4.打jar包
    • 5.将jar包打包成exe


前言

最近有一个工作中需要开发一款可视化的行为树的配置工具,因为我呢一直用的java语言,所有就选择了用JavaFx进行桌面程序的开发,但是呢开发后打包却出现各种问题,那么这篇文章就记录一下我们成功打包的经验!供大家参考!


一、提前需要准备?

1.确保电脑上已经安装好jdk17,以及环境变量也配置好
2.下载javafx SDK 解压后,将路径添加到环境变量中 点击跳转下载页面
3.下载javafx jmods 下载后解压 后面打包的时候需要用到 点击跳转下载页面
在这里插入图片描述
4.下载wix311 并安装好,然后配置环境变量

配置好后的环境变量如下【用户变量】Java17的环境变量在系统变量 这个大家应该都会我就不贴图了
在这里插入图片描述

二、打包步骤

1.现将module-info.java删除 选中module-info.java 鼠标右键 Refactor 然后选择safe deleted

2.编辑设置 路径 Run/edit Configurations

	先将Application下面的配置全部删除,然后点击左上角的+号,选择Application,具体的设置如下

点击Modify options Add VM options 将下面的内容添加

--module-path
"C:\Program Files\Java\javafx-sdk-17.0.6\lib"
--add-modules
javafx.controls,javafx.fxml

选择好程序启动类
在这里插入图片描述
在这里插入图片描述

3.设置Artifacts 快捷键 ctrl+alt+shift+s 也可以通过file /Project Structure

  1. 现将默认的Artifacts 下面的配置 删除
  2. 点击+号
    在这里插入图片描述
    3.选择好启动类 点击ok
    在这里插入图片描述
    4.然后点击O吐葡萄LayOut 下的+号 选择file 路径选择javafx skd 的bin路径,将bin文件下的所有文件选择中 然后点击OK
    在这里插入图片描述
    然后点击Apply OK

4.打jar包

选择Build builAArtifacts 选择Aciton 下的build 就会字自动打包
打包好后会在out下生成jar包
在这里插入图片描述

5.将jar包打包成exe

1.选中打包好的jar包,鼠标右键open in Terminal
2.输入打包命令

jpackage --type exe --input . --dest . --main-jar .\[你打的jar包] --main-class [你工程的包名.启动类]p --module-path "[你的javafx-jmods路径]" --add-modules javafx.controls,javafx.fxml --win-shortcut --win-menu

配置好的打包命令如下

jpackage --type exe --input . --dest . --main-jar .\forceTool.jar --main-class com.lijilin.forcetool.MainApp --module-path "C:\Program Files\Java\javafx-jmods-17.0.6" --add-modules javafx.controls,javafx.fxml --win-shortcut --win-menu

打包完成后货在out目录下 生成exe文件
在这里插入图片描述

这样就打包成功了!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/9719.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

教你安装各种应用环境-Nodejs

因为最近做项目用到了Nodejs,如果直接下那么用到的就是最新版本。我要用以前的版本这就让我产生了写这篇文章的想法。 安装官网 官网:https://nodejs.org/en 如果安装最新的直接下载安装就行,流程可以看后面。 流程 其他版本点击"O…

年薪30W+,待遇翻倍,我的经历值得每个测试人借鉴

从自考大专到出走公司,从半年无业露宿深圳北站,从8k…到11.5k…再到20k,我的经历值得每个测试人借鉴 或许学历并没有那么重要 12年高考之后,在朋友的介绍下(骗了过去),没有好好的读大学&#x…

Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细

Linux Redis主从复制 | 哨兵监控模式 | 集群搭建 | 超详细一 Redis的主从复制二 主从复制的作用三 主从复制的流程四 主从复制实验4.1 环境部署4.2 安装Redis(主从服务器)4.3 修改Master节点Redis配置文件 (192.168.163.100)4.4 修改Slave节点Redis配置文…

计算机网络 - TCP的效率与特性

前言 本篇是介绍部分TCP的特性,了解TCP提高传输速率的机制;如有错误,请在评论区指正,让我们一起交流,共同进步! 文章目录前言1. 滑动窗口2. 流量控制3.拥塞控制4.延时应答5. 捎带应答6. 面向字节流7. 异常…

Android FrameWork详细教程—第一个启动的程序--init 与 Zygote

第一个启动的程序–init 不管Java还是C运行一个程序都是以main方法作为入口。所以我们先看看init.cpp的main函数. 目录:/system/core/init/main.cpp 具体代码: int main(int argc, char** argv) { #if __has_feature(address_sanitizer)__asan_set_er…

Kaggle 赛题解析 | AMP 帕金森进展预测

文章目录一、前言二、比赛说明1. Evaluation2. Timeline3. Prize4. Code Requirements三、数据说明四、总结🍉 CSDN 叶庭云:https://yetingyun.blog.csdn.net/ 一、前言 竞赛题目:AMP-Parkinson’s Disease Progression Prediction 竞赛地址…

基于逻辑回归构建肿瘤预测模型

使用逻辑回归构建肿瘤预测模型 描述 乳腺癌数据集包括569个样本,每个样本有30个特征值(病灶特征数据),每个样本都属于恶性(0)或良性(1)两个类别之一,要求使用逻辑回归&…

spring beancopier Cannot invoke “Object.getClass()“ because “cause“ is null异常处理

我们项目用到spring beancopier, 在别的机器上运行正常,代码拉到我机器上就不正常了,抛出异常信息如题。 Caused by: org.springframework.beans.BeanInstantiationException: Failed to instantiate [com.ibm.riskmeasure.rwaservice.service.singlete…

ASP.NET Core MVC 从入门到精通之初窥门径

随着技术的发展,ASP.NET Core MVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NET Core MVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生&#xff0c…

字节跳动软件测试面试过了,起薪20k

普通二本计算机专业毕业,从毕业后,第一份接触测试的工作是在一家通讯小公司,大部分接触的工作是以功能测试为主,一直都是几千块钱工资,还一度被派出差,以及兼职各种产品、运维、运营的活,感觉自…

真1分钟搞懂缓存穿透、缓存击穿、缓存雪崩

💗推荐阅读文章💗 🌸JavaSE系列🌸👉1️⃣《JavaSE系列教程》🌺MySQL系列🌺👉2️⃣《MySQL系列教程》🍀JavaWeb系列🍀👉3️⃣《JavaWeb系列教程》…

NIFI大数据进阶_连接与关系_设置数据流负载均衡_设置背压_设置展现弯曲_介绍以及实际操作---大数据之Nifi工作笔记0027

然后我们来看连接与关系部分 然后右键一个关系可以看他的配置 注意这个,如果添加多个关系,这里flowfile就会自动clone 然后可以看到连接的配置中有,flowfile过期时间配置,有back pressure 背压配置, 有负载均衡配置 这里的这个FlowFile Expiration是配置FlowFile在队列中的过期…

网络中的一些基本概念

组建网络的重要设备 集线器,交换机(组建局域网,不能跨局域网组建网络),路由器(wifi本质上是无线路由器,路由器的本质的把俩个局域网给连起来) 网络通信的一些基础概念 IP地址 标识了网络设备所在的位置 端口号 标识了一个具体的应用程序 协议 协议是网络通信的概念,约定好…

虹科案例 | 虹科Domo商业智能,助力保险公司逃离繁杂数据池!

金融行业的发展充满着不确定性,一个具备强大承保能力和精算专业知识的资金池,对于身处该领域的公司和个人都是十分必要的。 在全国城市联盟(NLC)的协助下成立的NCL Mutual会员制互助保险公司,为各个地区城市提供了稳定…

第13届蓝桥杯省赛真题剖析-2022年4月23日Scratch编程初中级组

[导读]:超平老师的《Scratch蓝桥杯真题解析100讲》已经全部完成,后续会不定期解读蓝桥杯真题,这是Scratch蓝桥杯真题解析第121讲。 第13届蓝桥杯省赛举办了两次,这是2022年4月23日举行的第二次省赛,比赛仍然采取线上形…

MySQL SQL性能分析 慢查询日志、explain使用

SQL执行频率 MySQL 客户端连接成功后,通过 show [session|global] status 命令可以提供服务器状态信息。通过如下指令,可以查看当前数据库的insert、update、delete、delect的访问频次: -- session 是查看当前会话; -- global 是查询全局数…

paddle实现手写数字识别模型继续解读

要点: 手写数字识别用简单的线性进行分类效果比较差,添加卷积层和池化层效果会相对较好。参考文档:百度官方文档 一 网络结构 前几节我们尝试使用与房价预测相同的简单神经网络解决手写数字识别问题,但是效果并不理想。原因是手…

7.1 基本运放电路(1)

集成运放的应用首先表现在它能构成各种运算电路上,并因此而得名。在运算电路中,以输入电压作为自变量,以输出电压作为函数;当输入电压变化时,输出电压将按一定的数学规律变化,即输出电压反映输入电压某种运…

Msray-Plus采集工具帮您轻松获取目标受众的数据,让您的市场营销更加便捷

市场营销是企业推广产品和服务的重要手段之一,是企业获取客户和提高销售业绩的关键环节。然而,传统的市场营销方式存在着很多弊端,如缺乏数据支持、信息不准确、效率低下等问题,这些问题直接影响了企业的市场营销效果。而随着互联…

【Redis学习】Redis集群

理论简介 定义 由于数据量过大,单个Master复制集难以承担,因此需要对多个复制集进行集群,形成水平扩展每个复制集只负责存储整个数据集的一部分,这就是Redis的集群,其作用是提供在多个Redis节东间共享数据的程序集。…