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

news2024/11/27 9:43:29

无论是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.coloradmin.cn/o/1825774.html

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

相关文章

自制一个Linux live固件镜像ISO可引导系统

使用母盘镜像制作两个虚拟,来制作一个包含基本需求的filesystem.squashfs文件,具体看下面的链接 使用的安装镜像 是Linux Mint 制作好的成品 https://cloud.189.cn/t/U32Mvi7FnyA3 (访问码:2nbo) 最简单制作LIVE CD…

ChatGPT魔法背后的原理:如何做到词语接龙式输出?

介绍 我们都知道 ChatGPT 是 AIGC 工具,其实就是生成式人工智能。大家有没有想过这些问题 🤔️: 1、我们输入一段话,就可以看见它*噼里啪啦的一顿输出*,那么它的原理到底是什么? 2、到底它是怎么锁定这些…

【Prometheus】Prometheus的k8s部署

Kubernetes 集群部署 Prometheus 和 Grafana //实验环境 控制节点/master01 192.168.67.30 工作节点/node01 192.168.67.12 工作节点/node02 192.168.67.13 //node-exporter 安装 #创建监控 namespace kubectl create ns monitor-sa #部署 nod…

Java—装饰器模式

介绍 装饰器模式 装饰器模式(Decorator Pattern)是一种结构型设计模式,它允许你动态地将行为添加到现有的对象中,而无需修改其代码。装饰器模式提供了比继承更灵活的功能扩展方式。 主要角色 Component:定义一个对…

【数据的增值之路】全生命周期的数据演化过程

引言:随着云计算、大数据、人工智能、区块链等新一代信息技术的快速发展,数据已经成为推动经济增长的重要生产要素。数据量的爆炸式增长,为挖掘数据价值、推动数字经济发展提供了丰富的资源基础。重要概念解析: 数据经济&#xf…

[图解]建模相关的基础知识-09

1 00:00:01,350 --> 00:00:03,780 首先,我们来看一下什么叫关系 2 00:00:05,370 --> 00:00:08,990 这个关系跟下面说的这些关系 3 00:00:09,000 --> 00:00:10,390 它不是一个东西 4 00:00:11,110 --> 00:00:14,950 比如说,我们UML类图上&…

【因果推断python】36_断点回归2

目录 RDD 估计 内核加权 RDD 估计 RDD 依赖的关键假设是阈值处潜在结果的平滑性。用比较正式地表述来说,当运行变量从右侧和左侧接近阈值时,潜在结果的极限应该是相同的。 如果这是真的,我们可以在阈值处找到因果关系 从其本身意义来说&…

RocketMQ源码学习笔记:源码启动NameServer,Broker

这是本人学习的总结,主要学习资料如下 马士兵教育rocketMq官方文档 目录 1、Overview2、NameServer2.1、源码启动NameServer 3、Broker启动过程 1、Overview 这篇文章的源码的版本是release-4.9.8。在启动各个模块之前应该先对项目进行打包mvn install -Dmaven.te…

大数据实训项目(小麦种子)-04、大数据实训项目JavaWeb环境搭建

文章目录 前言运行前准备工作1、安装Hadoop3.1.0配置winutils原因描述配置方式注意点(hadoop.dll拷贝System32目录下) 2、hive运行报错(The dir: /tmp/hive on HDFS should be writable. ) 项目环境搭建参考资料 前言 博主介绍&a…

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

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

unity数独游戏

using System; using System.Collections; using System.Collections.Generic; using UnityEngine; using UnityEngine.UI;public class MainMenuPanel : MonoBehaviour {public Button btnPlay; // 开始按钮public Slider sldDifficulty; // 难度滑动条private void Awake(){/…

省去烦恼!轻松实现一台电脑登录多个微信号的秘诀揭秘!

你知道如何在同一台电脑上登录多个微信号,并实现聚合聊天吗? 今天,我将分享一个多微管理神器——个微管理系统,帮助你解决这一问题! 1、多号同时登录,聚合聊天 无论你有多少个微信号,都可以一…

畅想智能美颜工具的未来:美颜SDK技术详解

美颜SDK作为技术的核心,承载了美颜工具的实现和创新。本篇文章,小编将深入探讨美颜SDK技术的细节。 一、技术原理 美颜SDK是一种软件开发工具包,集成了一系列图像处理算法和技术,旨在实现对照片和视频中人物的实时美化。其主要技…

Hyper-V如何将文件复制到虚拟机?教您3个简单的方法!

需要将文件复制到虚拟机! “大家好,有谁知道Hyper-V怎么将文件复制到虚拟机吗?我有一些文件,想要从主机中复制进虚拟机中,但是我不知道该怎么操作,有谁可以帮帮我吗?谢谢。” Hyper-V虚拟机可…

家庭海外仓:优势,挑战以及如何利用海外仓系统提升效率

家庭海外仓凭借其灵活,服务优良的特点,一直受到很多跨境电商企业的欢迎,不过,在当今的市场竞争之下,家庭海外仓也同样面临一些挑战,今天我们就来系统的分析一下家庭海外仓应该如何通过海外仓系统的引入来解…

Web期末复习指南(2w字总结)

前言:本文旨在梳理Web技术常包含的内容,阅读完整篇文章后会对整体有个系统的认知,从前端的HTML到后端的MySql,对于大概试题中可能会涉及的地方都有所分析,通篇提供了许多代码案例,供读者更好的理解。对于一…

Oracle阅读Java帮助文档

进入到Help Center 选择Java 查看Java SE [version]对应版本相关的内容 查看其它版本 查看Java11 javac等相关参数 目录查看java相关命令

能耗分析与远程抄表是什么?

一、引言 在21世纪的数字化时代,能耗分析和远程抄表已成为现代能源管理的重要组成部分。这两项技术不仅提高了能源效率,还为企业和个人提供了更精细的能源使用数据,从而实现更科学的节能减排。 二、能耗分析的深度洞察 能耗分析是通过收集…

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

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

java:spring【AnnotationMetadata】的简单使用例子

# 项目代码资源&#xff1a; 可能还在审核中&#xff0c;请等待。。。 https://download.csdn.net/download/chenhz2284/89435385 # 项目代码 【pom.xml】 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-start…