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

文章介绍了如何将一个SpringBoot项目打包成EXE文件,以便在没有JDK/JRE的环境下运行。作者分享了使用exe4j和innosetup两个工具进行转换和打包的过程,包括配置JVM参数、选择启动模式、添加JRE路径等关键步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

往期热门文章:

1、MyBatis的10种精妙用法,真是妙啊!
2、发现一款好用到爆的数据库工具,被惊艳到了!
3、新来了个同事,代码命名规范是真优雅呀!代码如诗!!
4、MyBatis Plus 解决大数据量查询慢问题
5、能挣钱的,开源SpringBoot和Vue的企业级项目,代码很规范!

来源:blog.csdn.net/m0_37701381

Java jar打包成exe应用程序,可在无JDK/JRE环境下运行

前言

近期做了一个前后端合并的spring boot项目,但是要求打包城exe文件,提供给不懂电脑的小白安装使用,就去研究了半天,踩了很多坑,写这篇文章,是想看到这篇文章的人,按照我的步骤走,能少踩坑。

准备

准备工作:

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

  2. exe4j,一个将jar转换成exe的工具,链接:https://pan.baidu.com/s/1J30uUMJcYnqWCJSr6gkM5w 提取码:6esr
    注册码:L-g782dn2d-1f1yqxx1rv1sqd

  3. inno setup,一个将依赖和exe一起打成一个安装程序的工具,链接:https://pan.baidu.com/s/1DgFo1ceM\_8Bqx\_b-veibbQ提取码:g9jd

开始

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

bd8cb2dc9ea25c9489ee7a1a40817e64.jpeg

jar包放在桌面

打开安装好的exe4j

7a2c5a6b1914533353903401b5ac80f5.png

打开exe4j

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

305bdcc993f6987d61840bca7481580a.png

JAVA转EXE

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

b7a8f70049cc53b2df2521fe35b0ce99.png

输入名称和输出路径

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

12fa7312b6d9b067d9d414460a1a3aef.png

选择启动模式

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

92e09099dc115e39a0686a610c14ccb2.png

兼容32和64位系统

进来后勾选上

a8cdefe48cc4cd50229c1889e24f4b72.png

勾选

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

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

ac66a3b2918cad3d05c522d51e7aafa1.png

VM参数配置
eaa4a3a7055028a273903392b9cc81b7.png
VM参数配置
ae4410ec74532611e845e1658f42cf25.png
VM参数配置
8b99e246f4dca1cc76fa034775cdde95.png
VM参数配置

点击下一步,配置JRE

2b0c1d017928eac0ec24c9f03ae16adf.png

配置JRE

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

1abf3f42516d8af900ef4f25afd0ed7a.png

下拉框点击
5c1b619b95ac1471c39cfee69fb8fd00.png
界面

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

608d114d47c1da17dfd8567ccd8b2566.png

不用再安装jdk

接着下一步,选择Client VM

88b171822a9c26dbcf578268ab4a428a.png

选择Client VM

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

c5fca83f7eb4df1a97f682e03fce54e7.png

最终出现如下界面

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

打开inno setup,左上角File - New

5100582807af5fea573005dab3110704.png

打开inno setup

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

c5702a90fb49dccdd0f0327db6d266d6.png

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

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

f64e2a59a39cbe25a5fdb6d80661a2b9.png

直接下一步

接着选择生成好的exe文件

823211064465688fb906388aa4ed51c2.png

接着选择生成好的exe文件

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

cbaa6686bcd5f78414c108d3fd556af5.png

保持默认

依旧下一步,不用管

b09fe200de471ee062dc1fcd9f0a841c.png

下一步

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

5e174060436085be5d4cc5d71fef3e09.png

选择语言

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

81e698703368c4c1f16c5355545ffef4.png

选择输出路径

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

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

c9e0aaa6e00822a8f79037caa0f041cf.png

编译

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

ab35aa5177fbc98535e9d48f49fb23e7.png

把本地的JRE写进脚本
ee0cfcf7ce0c625c87b77e5ba5ba5cf7.png
把本地的JRE写进脚本
4ebf816b407f4f0d43f54fafa594d5ea.png
把本地的JRE写进脚本
ab2f226ffbfcb9abab424e0ad08b0e68.png
把本地的JRE写进脚本

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

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

5a31c238eac2610fedbf4c1d42cd144a.png

保存当前脚本
a439aa42b1b768e094de1d3aa3eb89c6.png
保存当前脚本

然后等待绿色滚动条结束

e90585d5631d8a55ca34dfbed4b7a5bf.png

等待绿色滚动条结束

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

d04b3dd4d4533857141c63375f84fcb4.png

Java打包ext

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

4363d2e2afea7cabcdf7a0ef3c3659fa.png

创建快捷方式

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

往期热门文章:
1、Spring Batch 批量处理,骚气且强大!
2、Controller层代码就该这么写,老板看了硬要给我涨工资!
3、IDEA新UI速览,成了VS Code的样子?
4、一个比传统数据库快 100-1000 倍的数据库
5、银行科技部半年!人间半个月!
6、当年那个手搓CPU的老哥回来了!
7、别再重复造轮子了,一个 Spring 注解轻松搞定循环重试功能!
8、面试官:一千万的数据,你是怎么查询的?
9、我调用第三方接口遇到的13大坑!
10、工作十四年,一位资深Java工程师的自白
### 如何使用 IntelliJ IDEA 将 Spring Boot 应用程序打包EXE 文件 虽然 Spring Boot 默认支持通过 Maven 或 Gradle 打包 JAR 或 WAR 文件,但要将其转换为可执行的 EXE 文件,则需要借助第三方工具来完这一过程。以下是实现此目标的具体方法: #### 工具准备 为了将 JAR 文件转化为 EXE 文件,可以使用 **Launch4j** 这样的开源工具[^1]。它能够将 Java 的 JAR 文件封装到 Windows 平台上的原生 EXE 可执行文件中。 --- #### 步骤说明 ##### 1. 使用 IntelliJ IDEA 创建并打包 Spring Boot 项目 在 IntelliJ IDEA 中按照标准流程创建一个 Spring Boot 项目,并确保可以通过 `mvn package` 命令功生 JAR 文件[^5]。 - 配置项目的构建工具(Maven 或 Gradle),并在其配置文件中指定打包方式为 JAR。 对于 Maven,在 `pom.xml` 文件中添加以下插件: ```xml <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 运行命令以生 JAR 文件: ```bash mvn clean package ``` 这将在 `target` 目录下生一个可运行的 JAR 文件。 --- ##### 2. 下载并安装 Launch4j 前往 [Launch4j 官方网站](http://launch4j.sourceforge.net/) 下载适合操作系统的版本,并解压后启动该工具[^3]。 --- ##### 3. 配置 Launch4j 打开 Launch4j 后,按如下方式进行设置: - **Output file**: 设置最终生EXE 文件路径和名称。 - **Jar**: 指定由上一步生的 JAR 文件位置。 - **Class path**: 如果有额外依赖项,需在此处填写相对路径。 - **JRE minimum version**: 设定最低 JDK 版本需求。 - **Header type**: 通常选择 GUI 或 Console 类型,取决于应用程序界面形式。 - **Version info**: 添加关于软件的信息,如公司名、版权等[^4]。 完后保存配置文件以便后续修改或重复利用。 --- ##### 4. 构建 EXE 文件 点击 Launch4j 界面上的 “Build wrapper” 按钮即可开始构建过程。如果一切正常,将会看到一个新的 EXE 文件被创建出来[^2]。 此时可以直接双击这个 EXE 文件来启动您的 Spring Boot 应用程序。 --- ### 注意事项 - 确保目标机器已安装对应版本的 JVM;或者可以在 Launch4j 中嵌入私有的 JRE 来避免此类问题。 - 对于复杂的 Spring Boot 应用可能还需要调整内存参数以及日志输出等相关选项。 --- ### 示例代码片段 下面展示了一个简单的 Spring Boot Hello World 控制器类作为测试用途: ```java package com.example.demo; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RestController; @RestController public class HelloWorldController { @GetMapping("/hello") public String sayHello() { return "Hello, this is a Spring Boot application!"; } } ``` 上述控制器可通过访问 `/hello` 路径返回字符串消息。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值