SpringBoot使用bat脚本启动服务的代码步骤

 更新时间:2025年10月14日 09:35:05   作者:盹猫  
在SpringBoot开发部署jar包时,可能需要配置大量的运行时环境,比如数据库,JDK等,这时你可能会想到Docker部署服务,但假如甲方就是想【一键启动】服务,应该怎么办呢?本篇文章就是记录自己编写bat(或.sh)脚本快速的实现SpringBoot的启动,需要的朋友可以参考下

前言

在SpringBoot开发部署jar包时,可能需要配置大量的运行时环境,比如数据库,JDK等。这时你可能会想到Docker部署服务,但假如甲方就是想【一键启动】服务,什么都不用配置就可以用,应该怎么办呢?

本篇文章就是记录自己编写bat(或.sh)脚本快速的实现SpringBoot的启动,完全独立的部署启动环境。

环境准备

版本

名称版本说明
JRE1.8JAVA运行时
Postgres15数据库

这里需要用到Postgres数据库(当然也可以是Mysql),JRE1.8(也可以是其它版本,根据实际开发时用的JDK版本选择)。

注意:这里使用的是资源文件,不使用安装包,是直接调用资源文件内的exe文件实现数据库配置和JAR包运行。

代码步骤

初始化并启动数据库

将Postgres数据库资源文件放到一个文件夹内(这里是pgsql文件夹),将要用到的初始化sql文件也放到该文件夹内(这里放在sql文件夹)。

使用bat脚本(同一目录)进行数据库初始化,脚本如下:

@echo off
setlocal
 
set PG_HOME=.\pgsql
set DB_NAME= fire_qixia
set DB_PWD= 12345
set DB_PORT= 5433
set SQL_FILE= .\sql\pgsql.sql
 
echo [1/4] 正在初始化 PostgreSQL...
if not exist "%PG_HOME%\data\PG_VERSION" (
  echo 正在初始化 PostgreSQL 数据库...
  "%PG_HOME%\bin\initdb.exe" -D "%PG_HOME%\data" -U postgres -E UTF8 --locale=C -W
  if errorlevel 1 (
    echo 数据库初始化失败!
    exit /b 1
  )
  echo 数据库初始化成功!
)
 
echo [2/4] 正在启动 PostgreSQL...
start "" "%PG_HOME%\bin\pg_ctl.exe" -D "%PG_HOME%\data" -l "%PG_HOME%\pg.log" start -o "-p %DB_PORT%"
 
rem 等待几秒确保服务启动
ping -n 10 127.0.0.1 >nul
 
rem ==== 3. 创建数据库 ====
echo [3/4] 正在创建数据库 "%DB_NAME%" ...
"%PG_HOME%\bin\createdb.exe" -U postgres -p %DB_PORT% %DB_NAME%
if errorlevel 1 (
  echo 数据库可能已存在,继续...
)
 
rem ==== 4. 导入 SQL 文件 ====
if exist "%SQL_FILE%" (
  echo [4/4] 正在导入 SQL 文件 "%SQL_FILE%" ...
  "%PG_HOME%\bin\psql.exe" -U postgres -p %DB_PORT% -d %DB_NAME% -f "%SQL_FILE%"
  if errorlevel 1 (
    echo SQL 导入失败!
    exit /b 1
  )
  echo SQL 导入成功!
) else (
  echo 未找到 SQL 文件:%SQL_FILE%
)
 
endlocal

这里分别使用了pgsql/bin路径下的exe文件进行数据库的初始化,启动,创建和sql导入操作(不同的数据库,使用的.exe程序不同)

启动JAR包服务

如法炮制,将JRE1.8的资源文件和SpringBoot打包完成的JAR包程序同样复制到相同文件夹,使用下面的bat脚本启动:

@echo off
setlocal
 
set JAVA_HOME=.\jdk
set SPRING_APP=.\打包的程序.jar
 
echo 启动 Spring Boot 应用...
"%JAVA_HOME%\bin\java.exe" -jar "%SPRING_APP%"
endlocal

部署时只需要将所有文件一起复制到部署的机器上(windows系统),双击我们自定义的bat脚本即可部署运行程序了。

示例目录

.
├── config_db.bat     -----初始化并启动数据库的脚本
├── ext-config.yml    -----额外的配置
├── jdk                      ---jre运行环境
├── pgsql                  --- 数据库资源文件
├── 程序.jar               ---打包的程序jar包
├── sql                      --- sql文件
├── start_db.bat         ---启动数据库脚本
├── start_service.bat     ---启动服务脚本

疑问解答

如果我的 服务有些额外的配置需要如何快速修改呢?

可以在启动SpringBoot应用时在启动命令后添加

--spring.config.location=classpath:application.yml,file:./ext-config.yml

这个命令行进行自定义的配置覆盖,这时我们需要在相同的文件夹下新建一个ext-config.yml进行自定义。(和springboot内的yml配置一样)

我不想每次都初始化后启动数据库?

可以在文件夹内单独新建一个启动的bat文件,用于启动数据库服务,当然也可以创建一个停止服务的bat文件,用于停止。

示例代码:

@echo off
setlocal
 
set PG_HOME=.\pgsql
set DB_PORT=5433
 
echo 正在启动 PostgreSQL...
start "" "%PG_HOME%\bin\pg_ctl.exe" -D "%PG_HOME%\data" -l "%PG_HOME%\pg.log" start -o "-p %DB_PORT%"
 
rem 等待几秒确保服务启动
ping -n 10 127.0.0.1 >nul
 
endlocal

总结

通过如上的操作配置,可以实现一个可以快速配置和启动的服务,即使是没有任何技术基础的也可以进行服务的配置和启动,当然如果你有更好的解决方案,欢迎在评论区留言!

到此这篇关于SpringBoot使用bat脚本启动服务的代码步骤的文章就介绍到这了,更多相关SpringBoot bat脚本启动服务内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • springboot中使用jpa下hibernate的ddl-auto方式

    springboot中使用jpa下hibernate的ddl-auto方式

    这篇文章主要介绍了springboot中使用jpa下hibernate的ddl-auto方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-02-02
  • JAVA简单工厂模式(从现实生活角度理解代码原理)

    JAVA简单工厂模式(从现实生活角度理解代码原理)

    本文主要介绍了JAVA简单工厂模式(从现实生活角度理解代码原理)的相关知识。具有很好的参考价值。下面跟着小编一起来看下吧
    2017-03-03
  • Java中实现线程的超时中断方法实例

    Java中实现线程的超时中断方法实例

    之前在使用Java实现熔断降级组件的时候,需要实现接口请求的超时中断,通过查找相关资料了解了相关的方法,下面这篇文章主要给大家介绍了关于Java中实现线程的超时中断的相关资料,需要的朋友可以参考下
    2018-06-06
  • Java使用XWPFDocument生成word文档的示例代码

    Java使用XWPFDocument生成word文档的示例代码

    XWPFDocument 是 Apache POI 库中用于操作 .docx 格式 Word 文档的核心类,本文将针对 XWPFDocument 进行详细解析,涵盖其核心功能、常见用法及实际开发中的关键点
    2025-12-12
  • Java事件处理机制(自定义事件)实例详解

    Java事件处理机制(自定义事件)实例详解

    这篇文章主要介绍了Java事件处理机制(自定义事件)实例详解的相关资料,需要的朋友可以参考下
    2016-12-12
  • SpringBoot项目属性配置(application.properties、yml和yaml)

    SpringBoot项目属性配置(application.properties、yml和yaml)

    SpringBoot支持多种配置文件格式,包括application.properties、yml和yaml,application.properties是键值对结构,常用于简单配置,如设置服务器端口,yml和yaml文件格式相同,使用缩进表示层级,适合复杂配置,下面就来详细的介绍一下
    2025-08-08
  • Java由浅入深通关抽象类与接口下

    Java由浅入深通关抽象类与接口下

    在类中没有包含足够的信息来描绘一个具体的对象,这样的类称为抽象类,接口是Java中最重要的概念之一,它可以被理解为一种特殊的类,不同的是接口的成员没有执行体,是由全局常量和公共的抽象方法所组成,本文给大家介绍Java抽象类和接口,感兴趣的朋友一起看看吧
    2022-04-04
  • JavaEE之SpringBoot配置文件的使用及说明

    JavaEE之SpringBoot配置文件的使用及说明

    本文主要介绍了Spring Boot中配置文件的使用,包括application.properties和application.yml两种格式的配置文件的语法、读取方式以及优缺点,同时,还通过一个验证码案例练习,展示了如何使用Spring Boot和hutool工具类包实现验证码功能
    2026-01-01
  • Java中的FutureTask实现异步任务代码实例

    Java中的FutureTask实现异步任务代码实例

    这篇文章主要介绍了Java中的FutureTask实现异步任务代码实例,普通的线程执行是无法获取到执行结果的,FutureTask 间接实现了 Runnable 和 Future 接口,可以得到子线程耗时操作的执行结果,AsyncTask 异步任务就是使用了该机制,需要的朋友可以参考下
    2024-01-01
  • Springboot集成Springbrick实现动态插件的步骤详解

    Springboot集成Springbrick实现动态插件的步骤详解

    这篇文章主要介绍了Springboot集成Springbrick实现动态插件的详细过程,文中的流程通过代码示例介绍的非常详细,感兴趣的同学可以参考一下
    2023-06-06

最新评论