将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可执行文件。选择适合你的方法,根据需要调整配置。

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

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

相关文章

大模型企业落地:制造业可以选择的应用场景

前言 在当今制造业快速发展的背景下,设备稳定运行对于企业的发展至关重要。然而,传统的设备维修模式已无法满足现代企业的需求。为此,引入智能化、数字化的设备维修解决方案成为必然趋势。本文将探讨如何利用大模型技术,构建企业…

Netflix 机器学习科学家的提示词优化经验分享

编者按: 如何充分发挥大模型的潜能,用好大模型,关键在于如何优化向它们发送的提示词(prompt),是为提示词工程(prompt engineering)。 本文Netflix 机器学习科学家Cameron R. Wolfe的…

FPGA - 全局时钟资源

全局时钟资源是指FPGA内部为实现系统时钟到达FPGA内部各 CLB、IOB,以及BSRAM(Block Select RAM,选择性BRAM)等基本逻辑单元的延时和抖动最小化,采用全铜层工艺设计和实现的专用缓冲与驱动结构。 由于全局时钟资源的布线…

HAL库开发--串口

知不足而奋进 望远山而前行 目录 文章目录 前言 学习目标 学习内容 开发流程 串口功能配置 串口功能开启 串口中断配置 串口参数配置 查询配置结果 发送功能测试 中断接收功能测试 printf配置 DMA收发 配置 DMA发送 DMA接收(方式1) DMA接收(方式2) 总结 前言…

简单了解MySql以及一些简单的应用MySql

MySql基础篇 1、数据模型概述 关系型数据库 概念:建立在关系模型基础上,由多张相互连接的二维表组成的数据库。 特点: 使用表存储数据,格式统一,便于维护使用SQL语言操作,标准统一,使用方便 数…

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

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

计算机网络(7) 错误检测

一.校验和 使用补码计算校验和是一种常见的错误检测方法,应用于网络协议如IP和TCP。补码是二进制数的一种表示方法,可以有效地处理符号位和进位。下面是如何利用补码计算校验和的详细步骤和算数例子。 ### 计算步骤 1. **将数据分块**:将数…

缓存技术实战[一文讲透!](Redis、Ecache等常用缓存原理介绍及实战)

目录 文章目录 目录缓存简介工作原理缓存分类1.按照技术层次分类2.按照应用场景分类3.按照缓存策略分类 应用场景1.硬件缓存2.软件缓存数据库缓存Web开发应用层缓存 3.分布式缓存4.微服务架构5.移动端应用6.大数据处理7.游戏开发 缓存优点缓存带来的问题 常见常用Java缓存技术1…

服务器远程桌面经常连接不上,造成远程桌面连接不上的原因都有哪些

服务器远程桌面连接不稳定或经常连接不上是一个较为常见的技术问题,其可能的原因涉及多个层面,包括网络设置、服务器配置、系统安全等方面。下面将详细探讨一些可能造成远程桌面连接问题的主要原因: 首先,网络连接不稳定是导致远…

【类脑计算】突触可塑性模型之Hebbian学习规则和STDP

1 引言 突触可塑性 (Synaptic plasticity)指经验能够修改神经回路功能的能力。特指基于活动修改突触传递强度的能力,是大脑适应新信息的主要调查机制。分为短期和长期突触可塑性,分别作用于不同时间尺度,对感官刺激的短期适应和长期行为改变…

港理工最新综述:基于LLM的text-to-SQL调查(方法实验数据全面梳理)1

【摘要】文本到SQL旨在将自然语言问题转换为可执行的SQL语句,这对用户提问理解、数据库模式理解和SQL生成都是一个长期存在的挑战。传统的文本到SQL系统包括人工工程和深度神经网络。随后,预训练语言模型(PLMs)被开发并用于文本到SQL任务,取得了可喜的成绩。随着现代数据库变得…

前端开发和UI设计师的互怼,大概率逃不出这10个协作盲区。

前端和UI作为产品开发两个工序,按理说应该是合作亲密无间的,而实际工作中却是经常起摩擦,互怼成了常态,贝格前端工场通过本文带领大家一探背后的原因。 一、UI设计师和前端开发的岗位职责 UI设计师的职责: 1. 与产品…

iPad键鼠充电otg转接器 | LDR6020解决方案

随着科技的快速发展,iPad已经成为我们日常生活中不可或缺的一部分。它不仅是一个娱乐工具,更是一个高效的生产力工具。为了更好地满足用户的需求,iPad支持在充电的同时连接鼠标和键盘,极大地提升了使用的便捷性和效率。 iPad键鼠同…

SSM医院线上线下全诊疗系统-计算机毕业设计源码02210

目 录 摘要 1 绪论 1.1背景及意义 1.2研究现状 1.3ssm框架介绍 1.4论文结构与章节安排 2 医院线上线下全诊疗系统系统分析 2.1 可行性分析 2.1.1 技术可行性分析 2.1.2 经济可行性分析 2.1.3 法律可行性分析 2.2 系统功能分析 2.2.1 功能性分析 2.2.2 非功能性分…

多线程中run()和start()的区别

我们知道,在多线程中 Thread thread new Thread(runnable); thread.start();以及 thread.run();都可以执行runnable中run方法下的代码,但是二者又有所不同 下面给出一段代码用以体现二者的区别: 以下代码中,通过thread.start()启…

SAP RFC 输入一张表(C# 使用 SapNwRfc 二)

SapNwRfc中的配置参数,记录日志关闭 Trace0,可以得到很好的性能。 有网友在问,SAP RFC返回多张表(C# 使用 SapNwRfc 一)中如何输入一张表的数据,正好博主也遇到了这个场景,今天做了一个DEMO&…

一文带你搞清楚AI领域的高频术语!RAG、Agent、知识库、向量数据库、知识图谱、Prompt...都是在讲啥?

随着AI人工智能技术的不断发展,一些领域有关的概念和缩写总是出现在各种文章里,像是Prompt Engineering、Agent 智能体、知识库、向量数据库、RAG 以及知识图谱等等,但是这些技术和概念也的的确确在AI大模型的发展中扮演着至关重要的角色。这…

重塑IT审计的未来:数智化审计赋能平台的创新与实践

重塑IT审计的未来:数智化审计赋能平台的创新与实践 一、当前企业开展IT审计面临的挑战 随着信息技术的快速发展、企业数字化转型的持续深入,以及网络安全合规要求的不断增强,企业开展新型IT审计重要性越来越突出,但实施难度却越来…

自定义Unity组件——ABManager(AB包管理器)

需求描述 在Unity3D引擎中,AB包作为常用的游戏资源存储格式之一。而对于资源管理我们就不得不谈到集中管理的优势了,通过统一的接口加载和卸载AB包及其中的资源将进一步提升我们的编程效率。本文将围绕这个需求进行尝试。 功能描述 1. AB包的加载包括同…

软考初级网络管理员__Web网站的建立、管理维护以及网页制作单选题

1.在HTML 中,用于输出“>”符号应使用()。 gt \gt > %gt 2.浏览器本质上是一个()。 连入Internet的TCP/IP程序 连入Internet的SNMP程序 浏览Web页面的服务器程序 浏览Web页面的客户程序 3.HTML 语言中,单选按钮的…