SpringBoot项目如何打包成exe应用程序

news2024/9/22 19:35:28

准备

准备工作:

  1. 一个jar包,没有bug能正常启动的jar包

  2. exe4j,一个将jar转换成exe的工具

  3. 链接: https://pan.baidu.com/s/1m1qA31Z8MEcWWkp9qe8AiA

  4. 提取码: f1wt

  5. inno setup,一个将依赖和exe一起打成一个安装程序的工具

  6. 链接: https://pan.baidu.com/s/1m1qA31Z8MEcWWkp9qe8AiA
    提取码: f1wt

开始

以我为例子,我将jar包放在了桌面

jar包放在桌面

打开安装好的exe4j

打开exe4j

直接下一步进入界面,选择JAVA转EXE

JAVA转EXE

然后点下一步,输入名称和输出路径

输入名称和输出路径

继续点击下一步,选择启动模式

选择启动模式

下方有个选项,需要设置打包后的程序兼容32和64位系统

兼容32和64位系统

进来后勾选上

勾选

然后一直下一步,一直出现如下界面,开始选择jar包以及配置

在VM参数配置的地方加上:-Dfile.encoding=utf-8

VM参数配置

VM参数配置

VM参数配置

VM参数配置

点击下一步,配置JRE

配置JRE

下拉框点击后进入如下界面

下拉框点击

界面

照着这个样子写的目的是,最终会把本地jre目录和exe一起打包,让exe文件自己去根据路径去查找一起打包的jre,可不用再安装jdk

不用再安装jdk

接着下一步,选择Client VM

选择Client VM

然后一直下一步,最终出现如下界面

最终出现如下界面

这个时候你会发现桌面多了一个demo.exe文件,这个时候先别着急点开,接下来就是将jre和exe文件再打个包合并,达到在没有jdk电脑环境下也能运行

打开inno setup,左上角File - New

打开inno setup

直接点下一步,填写配置,应用名称,版本等,随意

填写配置,应用名称,版本

然后点击下一步,这个地方默认就行,直接下一步

直接下一步

接着选择生成好的exe文件

接着选择生成好的exe文件

然后下一步,进入这个界面保持默认,直接下一步

保持默认

依旧下一步,不用管

下一步

继续下一步,这里是选择语言

选择语言

然后就是选择输出路径和填写安装程序的名字了

选择输出路径

然后下一步,直接点Next,然后结束

配置到最后一步了,脚本文件,到这里会弹出问你是否马上编译,选择否,先把脚本写好再自己编译

编译

然后到了最后一步了,把本地的JRE写进脚本

把本地的JRE写进脚本

把本地的JRE写进脚本

把本地的JRE写进脚本

把本地的JRE写进脚本

Source: "自己本地JRE路径\*"; DestDir: "{app}\{#MyJreName}"; Flags: ignoreversion recursesubdirs createallsubdirs

然后直接编译就好了,会提示保存当前脚本,随便起个名字,下个还可以继续用

保存当前脚本

保存当前脚本

然后等待绿色滚动条结束

等待绿色滚动条结束

当绿色滚动条结束后,桌面会多了一个setup.exe文件

Java打包ext

也同时会跳出一个安装的,因为程序帮你自动启动生成的安装程序了,安装就可以了,安装的时候记得勾选创建快捷方式

创建快捷方式

这个就是最后的程序了,双击运行就可以看到结果了,把setup.exe文件给别人安装,就都可以看到自己的程序了。

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

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

相关文章

设计模式——代理模式(静态代理、JDK动态代理、CGLIB动态代理)

是什么? 如果因为某些原因访问对象不适合,或者不能直接引用目标对象,这个时候就需要给该对象提供一个代理以控制对该对象的访问,代理对象作为访问对象和目标对象之间的中介; Java中的代理按照代理类生成时机不同又分…

婴儿摇篮语音播放芯片,高品质MP3音乐播放芯片,WT2003H

婴儿摇篮是一种用于帮助婴儿入睡的设备。传统的婴儿摇篮通常只是简单的摇晃,但是带有语音播报芯片的婴儿摇篮则可以更好地模拟妈妈的声音,从而更有效地帮助婴儿入睡。 如果您正在寻找高品质音乐摇篮方案,那么WT2003H语音播放芯片&#xff0c…

5月7日 2H55min|5月8日8H50min|时间轴复盘|14:00~14:30

5月8日 todo list list4 40min ✅ |实际上用了50+50 list6 40min ✅ |实际上用了30+60 阅读+听力连做 100min ✅ 口语 day01 ✅ 口语 day02 口语 day03

6、并发事务控制MVCC汇总

1.并发事务控制 单版本控制-锁 先来看锁,锁用独占的方式来保证在只有一个版本的情况下事务之间相互隔离,所以锁可以理解为单版本控制。 在 MySQL 事务中,锁的实现与隔离级别有关系,在 RR(Repeatable Read&#xff0…

vCenter Server 8.0U1 OVF:在 Fusion 和 Workstation 中快速部署 vCSA

vCenter Server 8.0U1 OVF:在 Fusion 和 Workstation 中快速部署 vCSA vCenter Server 8.0U1 系列更新 请访问原文链接:https://sysin.org/blog/vmware-vcenter-8-ovf/,查看最新版。原创作品,转载请保留出处。 作者主页&#x…

Win上通过Jconsole查看Java程序资源占用情况(教程总结,一篇就够了)

最近需要读取一个大文件,为了判断有没有读取到内存中,需要一个能查看jar包占用内存的工具,一顿面向百度后,发现了jdk自带的工具Jconsole,将教程分享给大家 一、介绍 JConsole 是一个内置 Java 性能分析器,…

手把手教你使用unisat 交易市场|BRC20|Unisat

开始前先熟悉下这张平台市场标注图,能让你跟得心应手! 一、查看实时成交信息(已 moon 为例子) 搜索进入Token界面,点击 Orders 可以看到 1w 枚成交 87.86U(单价 30 聪,大约 0.008786u&#xf…

牛客网剑指offer|中等题day2|JZ76删除链表中的重复节点、JZ23链表中环的入口节点、JZ24 反转链表(简单)

JZ76删除链表中的重复节点 链接:删除链表中重复的结点_牛客题霸_牛客网 参考代码: 自己好像还是偏向双指针这种想法,所以用了两个指针,这样感觉更好理解一些。 对了,去重有两种,我一开始写成了简单的那种&a…

MGV3001_ZG_当贝纯净桌面-线刷固件包

MGV3001_ZG_当贝纯净桌面-线刷固件包-内有教程及短接点 特点: 1、适用于对应型号的电视盒子刷机; 2、开放原厂固件屏蔽的市场安装和u盘安装apk; 3、修改dns,三网通用; 4、大量精简内置的没用的软件,运…

【标准化方法】(3) Group Normalization 原理解析、代码复现,附Pytorch代码

今天和各位分享一下深度学习中常用的标准化方法,Group Normalization 数据分组归一化,向大家介绍一下数学原理,并用 Pytorch 复现。 Group Normalization 论文地址:https://arxiv.org/pdf/1803.08494.pdf 1. 原理介绍 在目标检测…

Javascript - Cookie的获取和保存应用

在之前的博客介绍了如何利用 Selenium去搭建 cookie池,进行自动化登录、获取信息等。那什么是cookie呢?它的作用又是什么呢? 这里,再重复简单介绍一下。 cookie 是浏览器储存在用户电脑上的一小段文本文件。该文件里存了加密后的用…

LeetCode之回溯算法

文章目录 思想&框架1.组合/子集和排列问题2.组合应用问题 组合/子集问题1. lc77 组合2. lc216 组合总和III3. lc39 组合总和4. lc40 组合总和II5. lc78 子集6. lc90 子集II 排列1. 全排列I2. 全排列II 组合问题的应用1.lc17 电话号码的字母组合2.lc131 分割回文串3. lc19 复…

集约式智能自动化办公,实在智能门户开启政企数字化转型新范式

导语: 随着数字化和智能化的快速发展,数字技术已经深入到各个行业和领域。实在智能基于数字员工在行业的深厚理解和丰富的实践经验,打造一站式的智能化统一平台——智能门户,打破了技术壁垒和系统数据之间的割裂感,实现…

软考A计划-重点考点-专题五(计算机网络知识)

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

Apache Sentry

官方 说明 Sentry是一种用于在Hadoop集群中控制和管理访问权限的工具。因此,CDH的Sentry指的是Cloudera Distribution for Hadoop中集成的Sentry组件,用于管理Hadoop集群中的访问控制和权限管理。 作用 Sentry是一个用于管理Hadoop集群中的访问权限的…

基于C++实现旅行线路设计

访问【WRITE-BUG数字空间】_[内附完整源码和文档] 系统根据风险评估,为旅客设计一条符合旅行策略的旅行线路并输出,系统能查询当前时刻旅客所处的地点和状态(停留城市/所在交通工具)。 实验内容和实验环境描述 1.1 实验内容 城…

【吐槽贴】项目经理如何进行高效沟通?

“项目最大的风险就是都觉得没有风险。” 这还是跟同行聊天时开玩笑的一句话,最近我却深有体会。一直以为一切正常的项目,最近却接连出了问题,复盘才发现几个关键性问题都出在沟通方面,还一直认为沟通能力是自己的优势。这次主要踩…

使用java-timeseries库,使用arima算法预测时间序列(

项目地址&#xff1a; GitHub - signaflo/java-timeseries: Time series analysis in Java maven&#xff1a; <dependency><groupId>com.github.signaflo</groupId><artifactId>timeseries</artifactId><version>0.4</version> &…

【剖析STL】String

1.什么是STL&#xff1f; 标准模板库&#xff08;Standard Template Library&#xff0c;STL&#xff09;是惠普实验室开发的一系列软件的统称。它是由Alexander Stepanov、Meng Lee和David R Musser在惠普实验室工作时所开发出来的。虽说它主要出现到C中&#xff0c;但在被引…

Dockerfile部署java项目

一、dockerfile展示 将DockerFile 配置文件放到 maven项目目录内&#xff0c;和pom.xml同级。 # Download code FROM bitnami/git:2 AS git RUN mkdir -p /home/app/src RUN git -c http.sslVerifyfalse -C /home/app/src clone -b local https://github.com/test.git# # Bui…