将Jar用三种方式生成Windows的安装程序

无论是WEB(spring boot)的JAR,还是JavaFX以及swing的Jar,要生成windows方式。

打包成Windows可执行文件(.exe),你可以使用以下三种方法:

### 方法1:使用Inno Setup

1. **构建JavaFX应用程序**:
   使用Maven或Gradle构建你的JavaFX应用程序,并生成一个JAR文件。

2. **下载并安装Inno Setup**:
   [Inno Setup](http://www.jrsoftware.org/isinfo.php)是一个免费的Windows安装程序创建工具。

3. **编写Inno Setup脚本**:
   编写一个Inno Setup脚本来创建安装程序。下面是一个简单的示例脚本:


    [Setup]
   AppName=YourAppName
   AppVersion=1.0
   DefaultDirName={pf}\YourAppName
   DefaultGroupName=YourAppName
   OutputBaseFilename=YourAppNameSetup

   [Files]
   Source: "path\to\your\app.jar"; DestDir: "{app}"; Flags: ignoreversion

   [Icons]
   Name: "{group}\YourAppName"; Filename: "{app}\app.jar"; Parameters: "-jar"
  

4. **编译脚本**:
   在Inno Setup中打开脚本文件并编译。这样会生成一个.exe安装程序,你可以分发给Windows用户。

### 方法2:使用Launch4j

1. **下载并安装Launch4j**:
   [Launch4j](http://launch4j.sourceforge.net/) 是一个开源工具,可以将JAR文件包装成Windows可执行文件。

2. **配置Launch4j**:
   打开Launch4j并配置基本选项,包括JAR文件的位置,输出文件的位置,JRE的路径等。

3. **生成EXE文件**:
   配置完成后,点击“Build Wrapper”按钮生成可执行文件。

### 方法3:使用jpackage(JDK 14+)+Winx

 从官网下载安装 WiX Toolset

请前往其 GitHub 发布页下载:

  • Releases · wixtoolset/wix3

从JDK 14开始,Java引入了jpackage工具,可以直接将Java应用程序打包成平台原生包。

1. **确保使用JDK 14或更高版本**:
   下载并安装JDK 14或更高版本。

为了简单,可下载其中的 wix311.exe 文件。这份安装包可帮助我们更简单地部署好 WiX Toolset 的构建环境。

2. **构建JavaFX应用程序**:
   使用Maven或Gradle构建你的JavaFX应用程序,并生成一个JAR文件。

3. **使用jpackage打包**:
   打开命令提示符并运行以下命令:

   
   jpackage --input path\to\input\dir --name YourAppName --main-jar app.jar --main-class com.yourpackage.MainClass --type exe
  

   参数说明:
   - `--input`:包含JAR文件的目录
   - `--name`:应用程序名称
   - `--main-jar`:主JAR文件
   - `--main-class`:主类的全限定名
   - `--type`:输出包类型,这里为`exe`

更详细参数:

  • --input .\lib:指定包含所有依赖的JAR文件的目录。
  • --main-jar hsclient-1.0-SNAPSHOT.jar:指定主JAR文件。
  • --main-class cn.edao.ej.spider.hotel.winclient.hsclient.HelloApplication:指定主类的全限定名。
  • --name Hello:应用程序名称。
  • --type exe:指定输出类型为可执行文件。
  • --win-shortcut:在开始菜单中创建快捷方式。
  • --win-menu:在开始菜单中创建文件夹。
  • --win-dir-chooser:允许用户选择安装目录。
  • --win-menu-group "YourAppName":指定开始菜单组名。
  • --icon path\to\icon.ico:指定应用程序的图标。

通过以上方法之一,你可以将JavaFX应用程序打包成Windows可执行文件。选择适合你的方法,根据需要调整配置。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2779. 数组的最大美丽值

简单翻译一下题目意思: 对于每个 nums[i] 都可以被替换成 [nums[i]-k, nums[i]k] 区间中的任何数,区间左右是闭的。在每个数字可以替换的前提下,返回数组中最多的重复数字的数量。 第一想法是用一个哈希表,Key 是可以被替换的数…

Kotlin 语言基础学习

什么是Kotlin ? Kotiln翻译为中文是:靠他灵。它是由JetBrains 这家公司开发的,JetBrains 是一家编译器软件起家的,例如常用的WebStorm、IntelliJ IDEA等软件。 Kotlin官网 JetBrains 官网 Kotlin 语言目前的现状: 目前Android 已将Kotlin 作为官方开发语言。 Spring 框…

硬件SPI读写W25Q64

硬件SPI读写W25Q64 接线图(和软件SPI一样) 使用SPI1,SCK,接PA5;MISO,接PA6;MOSI,接PA7;NSS,可接PA4。 接线图对应:PA5接CLK引脚,PA6…

【数据结构】第十六弹---C语言实现希尔排序

✨个人主页: 熬夜学编程的小林 💗系列专栏: 【C语言详解】 【数据结构详解】【C详解】 目录 1、希尔排序( 缩小增量排序 ) 1.1、预排序实现 1.2、希尔排序代码实现 1.3、代码测试 1.4、时空复杂度分析 1.5、性能比较 总结 上一弹我们…

Cheat Engine.exe修改植物大战僵尸阳光与冷却

Cheat Engine.exe修改植物大战僵尸阳光与冷却 打开Cheat Engine.exe和植物大战僵尸,点CE中文件下面红框位置,选择植物大战僵尸,点击打开 修改冷却: 等冷却完毕,首次扫描0安放植物,再次扫描变动值等冷却完…

【产品应用】一体化步进伺服电机在吊装机器人中的应用

随着工业自动化和智能制造的发展,吊挂式智能巡检机器人逐渐成为许多工业场景中的重要角色。这类机器人不仅能够提升工作效率,减少人工干预,还能在复杂或危险环境中完成巡检任务。在这些机器人的设计与制造中,一体化步进伺服电机扮…

windows环境如何运行python/java后台服务器进程而不显示控制台窗口

1.通常我们在windows环境下使用Java或Python语言编写服务器程序,都希望他在后台运行,不要显示黑乎乎的控制台窗口: 2.有人写了一个bat文件: cd /d D:\lottery\server && python .\main.py 放到了开机自启动里,可是开机的…

【立体几何】如何使用两个正方体(特殊骰子)摆出所有日期1~31

问题 如何使用两个正方体(特殊骰子)摆出所有日期? 解答 下标列举了所有日期 日期十位数个位数011号正方体:02号正方体:02号正方体:11号正方体:1021号正方体:02号正方体:02号正方体:21号正方…

网络安全形势迫在眉睫!云WAF保护私有云安全!

业务上云面临新的WEB安全挑战 目前,所有的组织都在积极地接受企业的“云”,推进数字化变革。在服务云计算和私有云平台构建中,用户除了要面对各种常见的网络攻击,还需要面对虚拟环境下的非授权访问、虚拟机逃逸和敏感信息泄漏等问…

Android中的KeyEvent详解

介绍 在Android中,KeyEvent 是用来表示按键事件的类,可根据对应的事件来处理按键输入,具体包含了关于按键事件的信息,例如按键的代码、动作(按下或释放)以及事件的时间戳,KeyEvent 对象通常在用…

主观评测图生3D之 --- Era3D

文章目录 概述真人测试(一般)动物(猫猫狗狗,不ok)Q版真人(惊艳) 概述 抱抱脸可以直接测试 不过抱抱脸只能够生成多视图图像以及对应的法向图。 评测的话,拿三类我们比较关心的图片…

Linux内存从0到1学习笔记(8.16 SMMU详解)---更新中

写在前面 前面博客已经了解过。SMMU是IOMMU在ARM架构上的实现。主要为了解决虚拟化环境中,GuestOS无法直接将连续的物理地址分配给硬件的问题。对于Hypervisor/GuestOS的虚拟化系统来说,所有的VM都运行在Hypervisor上,每一个VM独立运行一个O…

实战tcpdump4.99.4交叉编译

主要是记录交叉编译的一个坑,不知道为什么网上的教程都没遇到过。 环境 libpcap 1.10.4tcpdump 4.99.4WSL 编译步骤 注意事项 注意解压的时候文件夹名需要是libpcap-1.10.4,由于我是在github直接下载zip的压缩包名是libpcap-libpcap-1.10.4.tar.gz解…

【二】【动态规划NEW】91. 解码方法,62. 不同路径,63. 不同路径 II

91. 解码方法 一条包含字母 A-Z 的消息通过以下映射进行了 编码 : ‘A’ -> “1” ‘B’ -> “2” … ‘Z’ -> “26” 要 解码 已编码的消息,所有数字必须基于上述映射的方法,反向映射回字母(可能有多种方法&#xff…

两个矩阵差异分析

进行两个矩阵的差异分析是常见的数据分析任务。以下是使用R语言进行两个矩阵差异分析的详细步骤。我们将使用一个具体示例来说明如何计算两个矩阵之间的差异。 示例数据 假设我们有两个矩阵 matrix1 和 matrix2,分别代表不同条件下的基因表达数据。 # 创建示例矩…

基于Matlab的车牌识别停车场出入库计时计费管理系统(含GUI界面)【W6】

简介: 在当今城市化进程加快的环境下,停车管理成为了一个日益重要和复杂的问题。城市中的停车资源有限,如何高效利用和管理这些资源,不仅关乎市民出行便利性,也涉及到城市交通拥堵、环境污染等诸多问题的解决。 传统的…

【转】PG 插件大全,留着学习用

转自:PostgreSQL插件_postgresql 插件-CSDN博客 PostgreSQL插件_postgresql 插件-CSDN博客

Denoising Prior Driven Deep Neural Network for Image Restoration

之所以能够检索到这篇论文是想看看该论文是如何利用多尺度相似性解决图像去噪问题,除了摘要和结论,论文中两次提到这个术语。next section是指section 4。然后整个section 4,根本没有提多尺度的事儿,更别说解决了。又看了一下The …

【idea】解决springboot项目中遇到的问题

一、Maven报错Could not find artifact com.mysql:mysql-connector-j:pom:unknown in aliyunmaven解决及分析 报错 创建springboot项目,勾选数据库驱动,springboot版本为3,现在改成了2.7.2,Maven就发生了报错Could not find art…

CCAA质量管理【学习笔记】​​ 备考知识点笔记(三)质量管理方法与常见工具

第二部分 质量管理领域专业知识 《质量管理体系基础考试大纲》中规定的考试内容: 3.2 质量管理领域专业知识 a) 了解质量管理方法与工具相关知识,包括: 质量管理方法与工具的内涵与作用、发展历程与应用现状、分类与选择常用的应用软件…