将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、性能比较 总结 上一弹我们…

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

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

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

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

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

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

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

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

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

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) 了解质量管理方法与工具相关知识,包括: 质量管理方法与工具的内涵与作用、发展历程与应用现状、分类与选择常用的应用软件…

Vue使用vue-esign实现在线签名 加入水印

Vue在线签名 一、目的二、样式三、代码1、依赖2、代码2.1 在线签名组件2.1.1 基础的2.1.2 携带时间水印的 2.2父组件 一、目的 又来了一个问题,直接让我在线签名(还不能存储base64),并且还得上传,我直接***违禁词。 好…

每日5题Day25 - LeetCode 121 - 125

每一步向前都是向自己的梦想更近一步,坚持不懈,勇往直前! 第一题:121. 买卖股票的最佳时机 - 力扣(LeetCode) class Solution {public int maxProfit(int[] prices) {if(prices.length 1){return 0;}//dp…

TJA1145休眠唤醒调试

目录 项目场景:TJA1145引脚图问题描述SPI链路验证休眠唤醒休眠唤醒配置唤醒报文配置代码相关寄存器:模式寄存器使能CAN唤醒设置唤醒边沿检测事件状态及捕获寄存器CANFD报文不会被识别为有效的唤醒帧项目场景: 最近开发过程中,选择了这颗芯片,踩了很多坑,总算是把这个芯片…

mysql报错Access denied for user ‘root‘,navicat可以连接mysql,spring不能连mysql

首先修改配置文件跳过验证,编辑你自己挂载的配置文件的位置 #查找my.cnf位置 sudo find / -name "my.cnf"编辑mysql配置文件 vim /opt/soft/mysql/conf/my.cnf #在[mysqld]下面添加 skip_grant_tables#重启mysql docker restart mysql#进入容器 docke…

在 Windows 环境下安装mysql步骤(MySQL)

文章目录 一、下载 MySQL二、解压安装包到磁盘三、配置环境(管理员权限)四、安装 MySQL(管理员权限) 一、下载 MySQL 如下图:为你的电脑下载对应操作系统的 MySQL 安装包 二、解压安装包到磁盘 三、配置环境&#x…

抽象工厂模式(大话设计模式)C/C++版本

抽象工厂模式 C 参考&#xff1a;https://www.cnblogs.com/Galesaur-wcy/p/15927110.html #include <iostream> using namespace std;// 抽象产品Department ,定义具体产品的公共接口 class Department { public:virtual ~Department() default;virtual void Insert()…