在 Windows Server 系统中部署 Spring Boot 项目,通常可以按照以下步骤进行。Spring Boot 应用一般以内嵌 Tomcat 的方式运行,因此可以直接打包为可执行 JAR 文件进行部署。
📌 前提条件
确保 Windows Server 已满足以下基础环境:
-
安装 Java 运行环境(JRE 或 JDK)
- 推荐使用 JDK 8、11 或 17(根据项目要求)
- 设置
JAVA_HOME环境变量 - 验证安装:
java -version
-
确认防火墙和端口开放
- 默认 Spring Boot 使用 8080 端口,需在防火墙中允许该端口入站访问
✅ 部署步骤
第一步:准备 Spring Boot 项目并打包
-
在开发环境中使用 Maven 或 Gradle 打包成可执行 JAR 文件:
Maven:
mvn clean package生成的文件位于
target/your-app.jarGradle:
gradle build生成的文件位于
build/libs/your-app.jar -
将生成的
.jar文件上传到 Windows Server(可通过 FTP、远程桌面复制等方式)
第二步:创建部署目录并放置 JAR 文件
例如,在服务器上创建目录:
D:springboot-appsmyapp
将 your-app.jar 复制到该目录下。
第三步:测试运行 JAR 文件
打开命令提示符(以管理员身份运行),进入目录并运行:
java -jar your-app.jar
观察控制台输出是否正常启动,访问 http://服务器IP:8080 测试是否可达。
💡 可添加 JVM 参数,如:
java -Xms512m -Xmx1024m -jar your-app.jar
第四步:配置后台运行(推荐使用服务方式)
直接运行会占用 CMD 窗口,关闭即停止应用。建议将其注册为 Windows 服务。
方法一:使用 NSSM (Non-Sucking Service Manager)(推荐)
- 下载 NSSM:https://nssm.cc/download
- 解压后选择对应架构版本(x64/x86)
- 运行
nssm install <服务名>,例如:nssm install MySpringBootApp - 在弹出的窗口中配置:
- Path:
C:Program FilesJavajdk-11binjava.exe(实际路径) - Arguments:
-jar D:springboot-appsmyappyour-app.jar - Startup directory:
D:springboot-appsmyapp
- Path:
- 点击 “Install service”
- 启动服务:
net start MySpringBootApp
之后可在“服务”管理器中管理该服务(开机自启、自动重启等)
方法二:使用 PowerShell 脚本 + 任务计划程序(简单场景)
创建一个 .bat 脚本(如 start.bat):
@echo off
cd /d D:springboot-appsmyapp
java -jar your-app.jar > output.log 2>&1
然后通过任务计划程序设置开机启动。
第五步:配置日志和监控
-
日志输出:
- 在
application.yml中配置日志路径:logging: file: name: logs/app.log - 确保
logs目录有写入权限
- 在
-
使用 logrotate 或脚本定期清理日志
第六步:配置反向X_X(可选,推荐用于生产)
如果需要使用域名或 HTTPS,建议配合 IIS 或 Nginx 做反向X_X。
示例:使用 IIS + ARR(Application Request Routing)
- 安装 IIS 和 ARR 模块
- 创建网站,绑定域名
- 设置 URL Rewrite 规则,将请求转发到
http://localhost:8080 - 启用 SSL(导入证书)
第七步:安全与维护
- 关闭不必要的端口和服务
- 设置 Windows 用户权限限制
- 定期更新 Java 和系统补丁
- 配置备份策略(代码、配置、数据库等)
✅ 总结流程图
打包 JAR → 上传到服务器 → 安装 Java → 测试运行 → 注册为 Windows 服务 → 配置日志/X_X → 上线访问
🔧 常见问题排查
| 问题 | 解决方法 |
|---|---|
java不是内部或外部命令 |
检查 JAVA_HOME 和 Path 环境变量 |
| 端口被占用 | 使用 netstat -ano | findstr :8080 查看并终止进程 |
| 权限不足 | 以管理员身份运行 CMD 或检查文件夹权限 |
| 服务无法启动 | 检查 NSSM 配置路径是否正确,日志路径是否存在 |
如有需要,还可以结合 Jenkins 实现自动化部署,或使用 Docker 容器化部署(Windows Server 需支持 Docker EE)。
如需具体配置文件示例或脚本模板,可继续提问!
云小栈