当前位置: 首页 > backend >正文

如何将SpringBoot前后端项目制作成windows运行的exe文件

1、需要项目前提

1.1、一个完善的前端vue项目,一个完善的后端项目。

前端打包命令:npm run build 得到dist文件,将dist文件的内容放到后端项目的static文件下。
在这里插入图片描述

后端打包命令:mvn clean package,得到jar包。注意此时如果你放置好了前端资源的话,这个jar包是把前端项目一起打包进了。
在这里插入图片描述
需要配套的,可以私信,一杯奶茶钱即可。

1.2、数据库由mysql服务替换为轻量级的H2数据库,目的是可以让用户无需mysql环境,可以执行项目的sql语句。

pom文件配置

        <!-- H2 数据库 --><dependency><groupId>com.h2database</groupId><artifactId>h2</artifactId><scope>runtime</scope></dependency>

yml文件配置

spring:datasource:url: jdbc:h2:file:./data/railway;MODE=MySQL;DB_CLOSE_DELAY=-1;AUTO_SERVER=TRUE;DATABASE_TO_UPPER=falseusername: sapassword:driver-class-name: org.h2.Driverjpa:hibernate:spring:jpa:hibernate:ddl-auto: update  # 自动建表但不会删表database-platform: org.hibernate.dialect.H2Dialecth2:console:enabled: true  # 启用 H2 控制台,确保你能访问数据库

1.3、下载luanch4j软件

该软件专门制作exe文件,直接去官网launch4j下载压缩包解压缩即可。
会得到如下:
在这里插入图片描述

注意点

在如图中双击exe文件可以进入软件,注意这个时候你没有配置好xml文件,它的启动按钮是灰色的。
在这里插入图片描述
此时你在解压的文件夹下创建一个你项目的xml文件,若使用我的项目,该xml文件如图:
在这里插入图片描述
xml内容如下:

<launch4jConfig>
<!--  是否内嵌 JAR 到 EXE  -->
<dontWrapJar>false</dontWrapJar>
<headerType>console</headerType>
<!--  JAR 文件名称:与 XML 同目录  -->
<jar>railway-0.0.1-SNAPSHOT.jar</jar>
<!--  输出的 EXE 名称  -->
<outfile>railway.exe</outfile>
<!--  启动失败提示标题  -->
<errTitle>Railway App 启动失败</errTitle>
<!--  传递 JVM 参数  -->
<cmdLine>-Dfile.encoding=UTF-8</cmdLine>
<!--  设置工作目录为当前路径  -->
<chdir>.</chdir>
<!--  优先级正常  -->
<priority>normal</priority>
<!--  不需要保持进程存活  -->
<stayAlive>false</stayAlive>
<!--  崩溃后不自动重启  -->
<restartOnCrash>false</restartOnCrash>
<!--  JRE 设置  -->
<jre>
<!--  指向内置 JRE 相对路径,例如 railway\jre  -->
<path>jre</path>
<!--  是否需要 JDK。一般设为 false  -->
<requiresJdk>false</requiresJdk>
<!--  要求 64 位运行(如果你的 JRE 是 64 位)  -->
<requires64Bit>true</requires64Bit>
<!--  最小 Java 版本要求  -->
<minVersion>17</minVersion>
</jre>
</launch4jConfig>

如果你用了上述的xml文件,在luanch4j中选择导入。
在这里插入图片描述
在这里插入图片描述

注意

在这个launch4j文件夹下,你有如下文件需要导入

1、jar包

你后端生成的

2、jre包

最简单的方法,将你的后端用的本地目录jdk包复制一份,改名为jre即可。

1.4 总结

最后你只需要把exe文件与后端jar包、项目所需的jre放在一个文件夹下,进行压缩分享给其他用户。他无需有java环境即可运行这个前后端项目
在这里插入图片描述

http://www.xdnf.cn/news/984.html

相关文章:

  • 【python实用小脚本系列】用Python让鼠标“动起来”:光标自动移动、自动点击、自动图象识别的小技巧
  • 【教程】Digispark实现串口通信
  • 计算机是如何工作的
  • 使用Python可视化偶极子的电场
  • 2025年一站式AI创作平台主要功能介绍及使用教程
  • rac防火墙未禁用服务器重启导致二节点启动异常
  • Unity 场景管理核心教程:从 LoadScene 到 Loading Screen 实战 (Day 35)
  • 简单了解一下Unity Shader中的Swizzle操作
  • AI Agent认知框架(ReAct、函数调用、计划与执行、自问自答、批判修正、思维链、思维树详解和对比,最后表格整理总结
  • 移动端数据抓取:Android App的TLS流量解密方案
  • Springboot集成websocket实现消息推送
  • 深入解析 Spring 中的 @Value 注解(含源码级剖析 + 自定义实现)
  • jmeter跟踪重定向和自动重定向有什么区别?
  • 【计算机视觉】CV实战项目- CMU目标检测与跟踪系统 Object Detection Tracking for Surveillance Video
  • JavaScript-原型、原型链详解
  • Kubernetes相关的名词解释POD(13)
  • Spring Boot+Mybatis设置sql日志打印
  • 视频分析设备平台EasyCVR安防视频小知识:安防监控常见故障精准排查方法
  • leetcode 516. Longest Palindromic Subsequence
  • 开关电源实战(六)STM32数控电源BuckBoost
  • 【Tips】统一论文中的公式格式
  • 算法导论第3章思考题
  • 【Device|顶刊】突破衍射极限!20纳米光电探测器开启光学传感新时代
  • Flutter路由模块化管理方案
  • 组件是怎样写的(1):虚拟列表-VirtualList
  • 第 6 篇:衡量预测好坏 - 评估指标
  • 实现侧边栏点击标题列表,和中间列表区域联动效果
  • 《P3029 [USACO11NOV] Cow Lineup S》
  • 代码随想录算法训练营day8(栈与队列)
  • 个性化的配置AndroidStudio