You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Maven Spring Boot项目如何创建启停可执行Jar的脚本及打包exe方案

问题1:已运行的可执行Jar包停止方案

以下是三种适配不同场景的可行停止方案:

  • 基于Jar进程名停止(通用无依赖方案)
    适配没有开启Web端口的Spring Batch场景,通过JDK自带的jps命令定位对应Jar的PID后终止进程,bat脚本实现如下:
    @echo off
    for /f "tokens=1" %%i in ('jps -l ^| findstr "myapp.jar"') do (
        taskkill /f /pid %%i
        echo 应用已停止
    )
    
    若用户环境仅安装JRE无jps工具,可替换为按Java进程+启动参数匹配的逻辑。
  • 基于端口号停止(开启Web服务场景)
    如果应用引入了Web依赖启动了服务端口,可通过端口定位PID终止进程,示例(端口改为你实际使用的端口):
    @echo off
    for /f "tokens=5" %%a in ('netstat -ano ^| findstr "8080"') do (
        taskkill /f /pid %%a
        echo 应用已停止
    )
    
  • 优雅停机(需资源清理场景)
    引入Spring Boot Actuator依赖,开启shutdown端点,可实现停机前自动执行资源释放、任务收尾等逻辑,配置方式:
    1. pom.xml引入actuator依赖
    2. application.properties添加配置:
    management.endpoints.web.exposure.include=shutdown
    management.endpoint.shutdown.enabled=true
    
    停止时直接调用端点即可:curl -X POST http://localhost:8080/actuator/shutdown
问题2:启停方案选型与exe打包实现

bat脚本属于低成本快速落地方案,如果是小范围内部用户使用,逻辑简单易维护,完全够用。如果面向无技术基础的外部用户,或者需要后台静默运行、开机自启、崩溃自动恢复、免JRE环境运行等能力,打包为exe是更优的选择,具体实现有两种常用方案:

方案1:Maven插件集成打包(launch4j)

直接在现有pom.xml中添加插件配置,和原有构建流程完全打通,无需额外工具:

<plugin>
    <groupId>com.akathist.maven.plugins.launch4j</groupId>
    <artifactId>launch4j-maven-plugin</artifactId>
    <version>2.3.0</version>
    <executions>
        <execution>
            <id>build-exe</id>
            <phase>package</phase>
            <goals>
                <goal>launch4j</goal>
            </goals>
            <configuration>
                <!-- 不需要黑框后台运行就改为gui -->
                <headerType>console</headerType>
                <outfile>target/我的批量处理工具.exe</outfile>
                <!-- 改为你实际生成的jar包路径 -->
                <jar>target/myapp.jar</jar>
                <jre>
                    <!-- 按需配置支持的JRE版本范围 -->
                    <minVersion>1.8.0</minVersion>
                    <maxVersion>17.0.0</maxVersion>
                </jre>
            </configuration>
        </execution>
    </executions>
</plugin>

执行mvn package后即可在target目录生成exe文件,停止脚本可直接简化为taskkill /f /im 我的批量处理工具.exe,不会误杀其他Java进程。

方案2:单文件绿色打包(适配无JRE环境)

如果需要用户电脑不用安装Java就能运行,可以用打包工具把Jar和JRE一起打包为单个exe文件,操作步骤:

  1. 准备好对应版本的JRE文件夹、你的应用Jar包
  2. 执行打包命令(打包工具可直接搜索对应名称下载)
  3. 生成的exe双击即可运行,不需要用户提前配置Java环境

内容的提问来源于stack exchange,提问作者langar

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.05 15:45:00