将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.rhkb.cn/news/353931.html

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

相关文章

LaTeX 学习 第2节 数学结构

----用教授的方式学习 目录 2.1 上标与下标 2.2 上下画线与花括号 2.3 分式 2.4 根式 2.5 矩阵 ​​​​​​​LaTex安装包:https://download.csdn.net/download/weixin_38135241/89416392 LaTex- windows安装包:https://download.csdn.net/down…

web爬虫笔记:js逆向案例九(某多多 anti_content参数)补环境流程

web爬虫笔记:js逆向案例九(某多多 anti_content参数)补环境流程 一、目标网站:aHR0cHM6Ly9tb2JpbGUueWFuZ2tlZHVvLmNvbS8= 二、接口分析 1、快速定位加密位置(通过搜索/cells/hub/v3快速定位到加密js文件) 2、通过分析可知&#

springBoot多数据源使用、配置

又参加了一个新的项目,虽然是去年做的项目,拿来复用改造,但是也学到了很多。这个项目会用到其他项目的数据,如果调用他们的接口取数据,我还是觉得太麻烦了。打算直接配置多数据源。 然后去另一个数据库系统中取出数据…

王思聪隐形女儿曝光

王思聪"隐形"女儿曝光!黄一鸣独自面对怀孕风波,坚持生下爱情结晶近日,娱乐圈掀起了一场惊天波澜!前王思聪绯闻女友黄一鸣在接受专访时,大胆揭露了她与王思聪之间的爱恨纠葛,并首度公开承认&#…

kubernetes 核心概念

1 kubernetes核心概念 1.1 Pod Pod是可以在Kubernetes中创建和管理的、最小的可部署的计算单元。 Pod就像豌豆荚一样,其中包含着一组(一个或多个)容器;这些容器共享存储、网络、以及怎样运行这些容器的声明。 Pod就像一台物理…

Suno AI如何解决制作多语言混合的歌曲~

导读 你想不想制作一首有中文和粤语混合的歌曲? 你想不想制作一首有中文和日语混合的歌曲? 你想不想制作一首有中文和英语混合的歌曲? 如果你想不知道怎么操作,可以阅读下本文。 说明 本文让AI唱一首中文和日语混合的歌曲&am…

Linux笔记--vi编辑器

vi编辑器 基本操作 对于vi编辑器有这几种模式 移动 当编辑一个过大的文件时通过方向键移动光标过慢所以可以使用快捷键进行移动 编辑 dw指令只能在单词第一个字母处使用 D指令删除的是当前行 查找替换 pattern指代想要搜索的内容

Chrome插件开发入门:手把手教你创建第一个扩展

问题背景 最近,客户发布了一个新的任务 —— 开发一个Chrome插件。之前没有这方面的开发经验,准备想学习一下这块的内容,我发现网上的大多数视频都是几年前的,开发版本都是基于MV2,当前谷歌已经开始使用MV3&#xff0…

Elasticsearch如何聚合查询多个统计值,如何嵌套聚合?并相互引用,统计索引中某一个字段的空值率?语法是怎么样的

文章目录 Elasticsearch聚合查询说明空值率查询DSL Elasticsearch聚合基础知识扩展Elasticsearch聚合概念Script 用法Elasticsearch聚合查询语法指标聚合(Metric Aggregations)桶聚合(Bucket Aggregations)矩阵聚合(Ma…

代码随想录第28天|回溯算法

491. 非递减子序列 思路: 不可以排序, 否则会改变元素的顺序对收获的结果有要求, num.size() > 2, 且 num[i - 1] < num[i]需要进行去重, 不能使用排序后的方法去重每一层可用 unordered_set 去重组合问题, for 遍历需要标记起始位置 bug: 一定要先判断元素是否重复, …

RabbitMQ实践——在Ubuntu上安装并启用管理后台

大纲 环境安装启动管理后台 RabbitMQ是一款功能强大、灵活可靠的消息代理软件&#xff0c;为分布式系统中的通信问题提供了优秀的解决方案。无论是在大规模数据处理、实时分析还是微服务架构中&#xff0c;RabbitMQ都能发挥出色的性能&#xff0c;帮助开发者构建高效、稳定的系…

Microsoft AI Day:支持开放合作,普及技术应用,推进行业企业智慧化创新

微软在北京举办以“共创AI创新&#xff0c;智启无限可能”为主题的Microsoft AI Day活动&#xff0c;集中展示了在生成式智能技术加速发展普及的过程中&#xff0c;微软取得的最新技术突破与进展&#xff0c;并同步更新了在Microsoft Build 2024全球开发者大会上发布的一系列Az…

基于Java的高校校园点餐系统

开头语&#xff1a; 你好&#xff0c;我是计算机专业的学长&#xff0c;如果你对高校校园点餐系统感兴趣或有相关开发需求&#xff0c;欢迎联系我。 开发语言&#xff1a;Java 数据库&#xff1a;MySQL 技术&#xff1a;JSP技术 工具&#xff1a;Eclipse、Tomcat 系统展示…

安享智慧理财金融测试项目

1. 项目介绍 安享智慧理财金融系统是基于 Java 语言开发&#xff0c;集 PC 端、APP 端、WAP 端为一体的 P2P&#xff08;个人对个人&#xff09;的借贷系统&#xff0c;提供了完整的借款和投资功能。 web用户端 说明&#xff1a;PC 网站&#xff0c;供借款人和投资人使用功能…

PySide(PyQt)的特殊按钮(互锁、自锁、独占模式)

界面图: Qt Designer中创建窗口,放置一个QGroupBox,命名为btnStation,这就是自定义的按钮站,按钮站里放置6个按钮。自锁按钮相当于电器中的自锁功能的按钮,每按一次状态反转并保持不变。独占按钮也是自锁功能的按钮,不同的是当独占按钮为ON时,其余所有按钮均被置为OFF…

大模型“诸神之战”,落地才是赛点

ChatGPT 诞生已经快一年&#xff0c;你还在与它对话吗&#xff1f; 有的人用来写报告、改代码&#xff0c;让它成为得力帮手&#xff1b;有的人却只是“调戏”个两三回&#xff0c;让它创作诗歌或故事&#xff0c;便不再“宠幸”。 根据网站分析工具 SimilarWeb 的数据&#…

基于VSCode和MinGW-w64搭建LVGL模拟开发环境

目录 概述 1 运行环境 1.1 版本信息 1.2 软件安装 1.2.1 下载安装VS Code 1.2.1.1 下载软件 1.2.1.1 安装软件 1.2.2 下载安装MinGW-w64 1.2.2.1 下载软件 1.2.2.2 安装软件 1.2.3 下载安装SDL 1.2.3.1 下载软件 ​1.2.3.2 安装软件 1.2.4 下载安装CMake 1.2.4.…

c#音乐播放器续(联网下载)

音乐播放器 0.前言1.关于本地音乐播放2.使用iTunes Search API进行联网下载歌曲2.1 控件2.2 函数实现2.2.1 控件2&#xff1a;搜索歌曲2.2.2 控件3&#xff1a;下载歌曲 2.3 主界面 3.拓展 0.前言 书接上文&#xff0c;我们已经实现了一个能够播放本地音乐的音乐播放器&#x…

计算机专业毕设-在线商城系统

1 项目介绍 在线商城系统&#xff0c;后端java语言&#xff0c;springboot&#xff0c;SSM框架。前端thymeleaf&#xff0c;前后端不分离。本项目已经隐去作者信息&#xff0c;所有代码文件均没有创建人和创建时间&#xff0c;可以放心使用。 系统用户分为两类&#xff0c;管理…

Spring-JdbcTemplate

了解知道即可 JdbcTemplate环境配置 先加入依赖&#xff1a; 在pom.xml中要引入spring和mysql的依赖&#xff1a; <!--仓库和依赖--><repositories><repository><id>spring-milestones</id><name>Spring Milestones</name><ur…