将打包好的jar文件放到Windows云服务器上运行,是不少SpringBoot项目上线时的必经之路。相比Linux服务器,Windows环境下的部署方式有自己的特点,比如依赖图形界面操作、需要额外配置环境变量、要用nssm这类工具实现服务化。整个流程并不复杂,但每一步都有容易踩坑的细节,下面按照实际操作的顺序,把完整过程和注意事项讲清楚。

一、部署前的准备工作:连接服务器并搭建Java环境
第一步是通过远程桌面连接到云服务器。在本地电脑按下Win+R组合键,输入mstsc打开远程桌面连接工具,填入云服务器的公网IP地址,输入账号密码后即可进入服务器桌面。云服务器的管理员账号和密码一般在购买服务器时由服务商提供,如果忘记密码可以在控制台重置实例密码后重启服务器生效。
进入服务器后,先确认Java环境是否可用。打开命令提示符,输入java -version,如果能看到版本信息说明JDK已安装;如果提示不是内部或外部命令,就需要手动安装JDK。建议去Oracle官网下载Windows版的JDK安装包,或者直接使用OpenJDK的免安装版本。安装完成后,还需要配置环境变量:
JAVA_HOME = C:\Program Files\Java\jdk-17 Path 中追加 %JAVA_HOME%\bin
配置完环境变量后,重新打开一个命令行窗口再次执行java -version验证。这里有个细节要注意:环境变量修改后,已经打开的命令行窗口不会自动刷新,必须关掉重开才能读到新配置,很多人卡在这一步以为是配置错了,其实只是窗口没重启。
二、上传jar包并测试启动
环境就绪后,把jar包传到服务器上。方式有两种:一种是通过远程桌面直接复制粘贴,本地复制文件后在服务器桌面上粘贴即可;另一种是借助FTP工具如FileZilla或宝塔面板上传。建议在服务器上建立一个专门的目录来存放项目文件,例如D:\apps\myproject,把jar包放进去,同时在同目录下创建logs文件夹用于存放日志,方便后续维护。
接下来先用命令行手动启动一次,验证jar包本身能不能跑起来。打开命令提示符,切换到jar所在目录,执行以下命令:
cd /d D:\apps\myproject java -jar myproject.jar --server.port=8080
如果控制台打印出Spring的启动横幅并且最后出现Started字样,说明项目运行正常。此时可以在服务器本机浏览器访问http://localhost:8080做验证。但要注意,命令行窗口一旦关闭,Java进程也会跟着停止,这只是测试启动,正式运行还需要后面介绍的服务化方案。
三、配置开机自启:用nssm把jar注册为Windows服务
直接用命令行启动最大的问题是关掉窗口服务就停了,而且服务器重启后不会自动拉起项目。要解决这个问题,推荐使用nssm这款轻量工具。下载nssm后解压,根据系统位数选择对应的exe文件(一般放在C:\tools\nssm\win64目录下),然后以管理员身份运行命令提示符,执行:
C:\tools\nssm\win64\nssm.exe install MyProject D:\apps\myproject\run.bat
其中run.bat是事先编写好的启动脚本,放在项目目录下,内容大致如下:
@echo off cd /d D:\apps\myproject java -jar -Xms512m -Xmx1024m myproject.jar > logs\app.log 2>&1
脚本里通过-Xms和-Xmx参数限制堆内存大小,避免项目吃掉服务器全部内存,日志重定向到logs目录方便排查问题。服务安装完成后,可以在命令行执行nssm start MyProject启动服务,也可以打开services.msc服务管理器找到MyProject进行启停。这样配置后,服务器重启时项目会自动运行,不再依赖任何窗口。
四、常见问题与注意事项
第一个高频问题是外网无法访问。本地localhost能打开,但用公网IP访问就失败,原因通常有三个:云服务器安全组没有放行对应端口,需要到服务商控制台添加入站规则放行8080端口;Windows防火墙拦截了请求,需要在防火墙高级设置里新建入站规则;项目只绑定了127.0.0.1,此时要在配置文件里把address设为0.0.0.0或直接不配置。
第二个问题是日志或页面中文乱码。Windows命令行默认编码是GBK,而项目一般输出UTF-8,可以在bat脚本中加上chcp 65001切换编码,或者干脆像上面的脚本那样把日志写入文件再看,避开控制台编码问题。
第三,内存不足导致进程闪退也较为常见。云服务器如果是2G内存的小规格机型,同时跑数据库和Java应用很容易扛不住,建议根据实际机器配置合理设置-Xmx,并且开启交换空间作为兜底。此外,端口冲突问题可以通过netstat -ano | findstr 8080命令快速定位占用进程,再用taskkill /pid 进程号 /f结束它。最后提醒一点,更新jar包时先停止服务再覆盖文件,覆盖完成后重新启动服务,避免文件被占用导致更新失败。把以上细节都处理好,jar包就能在Windows云服务器上长期稳定运行了。
jar包部署windows云服务器springboot项目上线修改时间:2026-09-12 09:42:28