springboot在Windows(无jre)下打包并运行exe

本文介绍如何在没有JRE的Windows环境下,利用Eclipse和Maven将SpringBoot项目打包为可独立运行的EXE文件。通过使用exe4j工具,使JAR文件能够自动寻找同目录下的JRE进行运行,并借助InnoSetup制作安装包,实现项目的便捷部署。

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

在Windows无jre环境中springboot项目打包成exe并运行。

我用的eclipse,将springboot通过maven build 打包成 jar在target中。既然是java程序,那么必须就要在java环境下才能运行,也就是所谓的jre。通过exe4j可以将jar打包成exe,并可以让jar自动去寻找jre,但是说并不是所谓的将jre装载到exe中,而且exe和jre必须在同一个父目录下。如果你移植到其他环境中,是无法知道该windows环境是否存在jre。所以jar只能在与自己同一目录去寻找是否有jre来运行自己,那么这个工作是由exe4j完成。

第二步选择 "JAR in EXE" mode

第三步选择exe导出路径

第四步 

第五步

 

这里只强调第6步,其实这一步是告诉jar你运行的时候如果没有java环境,那么你就找跟你同目录下的jre,并不是说把jre打包进exe里面去。请务必将jre路径与jar包路径在同一目录下。剩下点next即可,到第九步会自行编译出exe。

到这里,除非你要把jar和jre打包成zip,压缩包的形式移植到其他环境下。很显然这是十分不友好的,那么可以使用innosetup将exe和jre打包成安装包形式的exe。这样就显得很自然了。innosetup使用很简单,不作详说。有一个地方特别提醒一下。

如果不做此操作,那么exe安装出来的名为jre文件夹不存在了,innosetup会自动将jre里的文件解析出来,然而jar又只认识jre文件夹下的。所以会报错。

附上exe4j和innosetup下载地址

Inno Setup: https://wws.lanzoux.com/istVMhgtpcj  密码:daus

exe4j: https://wws.lanzoux.com/iLymOhgtpbi   密码:b9z9

 

### Spring Boot项目打包EXE文件的教程 将Spring Boot项目打包EXE文件可以通过多种方式实现,以下是基于现有技术的一种常见方法: #### 方法概述 一种常见的解决方案是通过`exe4j`工具来完成初步打包结合其他工具进一步优化。具体流程如下: 1. **使用Maven构建Spring Boot项目的JAR包** 使用Maven插件生成标准的Spring Boot应用程序JAR文件[^2]。 ```xml <!-- Maven配置 --> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build> ``` 2. **引入exe4j工具** `exe4j`是一个用于创建Windows可执行文件的应用程序,可以将Java JAR文件转换为独立的.exe文件。它支持设置启动参数、图标以及运行时依赖项管理[^2]。 3. **配置exe4j** 在`exe4j`中定义以下内容: - 设置主类为主应用入口(通常是`com.example.DemoApplication`)。 - 将生成的JAR文件作为输入资源。 - 如果需要自定义JVM选项,则可以在高级设置中添加如`-Xms512m -Xmx1024m`等参数[^4]。 4. **集成JRE环境** 为了使最终产物更加便携化,可以选择嵌入特定版本的JRE至安装包内。这一步可通过手动复制相应平台下的JRE目录或将该过程自动化处理。 5. **二次封装提升用户体验** 对于更复杂的分发需求,推荐采用`Inno Setup`脚本制作图形界面引导式的安装向导。这种方式允许开发者灵活定制安装逻辑简化部署步骤[^2]。 6. **获取当前工作路径** 当以`.exe`形式运行时,可能需要用到实际的工作目录地址以便加载外部资源配置或其他动态数据源。此时可以利用下面这段代码片段提取相关信息[^3]: ```java public static String getExePath() { String osName = System.getProperty("os.name"); if (osName.toLowerCase().startsWith("windows")) { return new File(System.getProperty("exe4j.moduleName")).getParent(); } return null; } ``` 7. **测试验证** 完成以上各环节之后务必进行全面的功能性和兼容性检测,确保不同操作系统环境下均能正常运作。 ```bash # 测试命令示例 java -jar target/demo-application.jar --spring.profiles.active=prod ``` ---
评论 14
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值