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

Spring Boot 项目打包成可执行程序

目录

一、配置 Maven 打包插件

二、生成可执行 JAR

三、运行程序

四、跨平台执行方案

1. Windows 平台

2. Linux/macOS 平台

五、高级封装(可选)

六、验证执行


将 Java Spring Boot 项目打包成可执行程序的完整流程如下(以 Maven 构建工具为例):

一、配置 Maven 打包插件

pom.xml 中确保包含 Spring Boot Maven 插件:

<build><plugins><plugin><groupId>org.springframework.boot</groupId><artifactId>spring-boot-maven-plugin</artifactId></plugin></plugins>
</build>

二、生成可执行 JAR

执行 Maven 打包命令:

mvn clean package

生成的可执行 JAR 位于:

target/项目名-版本号.jar

三、运行程序

直接通过 Java 命令运行:

java -jar target/项目名-版本号.jar

四、跨平台执行方案

1. Windows 平台

创建批处理文件 run.bat

@echo off
java -jar 项目名-版本号.jar
pause

2. Linux/macOS 平台

创建可执行脚本 run.sh

#!/bin/bash
java -jar 项目名-版本号.jar

赋予执行权限:

chmod +x run.sh

五、高级封装(可选)

使用第三方工具生成原生可执行文件:

  1. GraalVM Native Image
    配置 pom.xml

    <build><plugins><plugin><groupId>org.graalvm.buildtools</groupId><artifactId>native-maven-plugin</artifactId></plugin></plugins>
    </build>
    

    编译命令:

    mvn native:compile
    

  2. Launch4j (Windows)
    将 JAR 封装为 EXE 文件:

    <plugin><groupId>com.akathist.maven.plugins.launch4j</groupId><artifactId>launch4j-maven-plugin</artifactId><version>2.5.2</version><executions><execution><id>l4j-gui</id><phase>package</phase><goals><goal>launch4j</goal></goals></execution></executions>
    </plugin>
    

六、验证执行

启动后检查控制台输出:

Started Application in 2.45 seconds (JVM running for 3.01)

关键说明

  • 标准 Spring Boot JAR 包含嵌入式 Tomcat 服务器
  • 文件大小通常 20-100MB(包含所有依赖)
  • 运行要求:目标机器需安装匹配版本的 JRE
  • 生产环境建议配合 nohup (Linux) 或服务注册 (Windows) 实现后台运行
http://www.dtcms.com/a/350787.html

相关文章:

  • 3秒传输大文件:cpolar+Localsend实现跨网络秒传
  • 内核编译 day61
  • Ubuntu安装及配置Git(Ubuntu install and config Git Tools)
  • Linux 磁盘文件系统
  • 【银河麒麟桌面系统】PXE实现arm、x86等多架构安装
  • Linux-进程相关函数
  • Vulkan学到什么程度才算学会
  • 关系轮-和弦图的可视化
  • VPS一键测试脚本NodeQuality,无痕体验+自动导出,服务器测试更轻松
  • illustrator-01
  • 我的项目管理之路-组织级项目管理(二)
  • ASW3642 pin√pin替代TS3DV642方案,可使用原小板只需简单调整外围|ASW3642 HDMI二切一双向切换器方案
  • QT6软件设置图标方法
  • Chrome插件开发:在网页上运行脚本
  • 6种简单方法将大视频从iPhone传输到PC
  • 音频相关数学支持
  • C++ 类型转换深度解析
  • 【应急响应工具教程】Unix/Linux 轻量级工具集Busybox
  • 为什么软解码依然重要?深入理解视频播放与开发应用(视频解码)
  • STM32F103C8T6引脚分布
  • 1. 并发产生背景 并发解决原理
  • 【JavaEE】文件IO操作
  • MyBatis 从入门到精通:一篇就够的实战指南(Java)
  • 最大子数组和【栈和分治两种思路】
  • Linux简明教程01 基础运维
  • C标准库 ---- locale.h
  • Escrcpy 3.0投屏控制软件使用教程:无线/有线连接+虚拟显示功能详解
  • 什么是生命体AI
  • TCP和UDP的使用场景
  • 【系统分析师】高分论文:论软件需求验证方法及应用