在 Windows Server 上部署 Java 项目是完全可行的,虽然 Linux 更常见,但 Windows Server 同样可以稳定运行 Java 应用。以下是详细的部署步骤和建议:
一、准备工作
-
确认服务器环境
- 操作系统:Windows Server(如 2016、2019、2022)
- 权限:具有管理员权限
- 网络:确保端口开放(如 8080、443 等)
-
安装 Java 运行环境(JRE/JDK)
- 下载 JDK(推荐使用 Oracle JDK 或 OpenJDK)
- 官网下载:https://adoptium.net(推荐 Temurin OpenJDK)
- 安装 JDK(例如安装到
C:Program FilesJavajdk-17) - 配置环境变量:
JAVA_HOME = C:Program FilesJavajdk-17 Path += %JAVA_HOME%bin - 验证安装:
java -version javac -version
- 下载 JDK(推荐使用 Oracle JDK 或 OpenJDK)
二、获取 Java 项目文件
通常 Java 项目打包为以下格式之一:
- JAR 文件(Spring Boot 常见)
- WAR 文件(需配合 Tomcat 等容器)
- 源码编译后部署
示例:Spring Boot 打包成 JAR
mvn clean package
生成 target/myapp.jar
将 JAR 文件上传到服务器(可用 FTP、SCP、远程桌面复制等方式)。
三、部署方式选择
方式一:直接运行 JAR(适用于 Spring Boot)
- 将 JAR 文件放到服务器目录,如
D:javaappsmyapp.jar - 使用命令运行:
java -jar myapp.jar - 如需后台运行,可使用:
start /B java -jar myapp.jar > app.log 2>&1 - 或使用 PowerShell 后台运行:
Start-Process java -ArgumentList "-jar","myapp.jar" -RedirectStandardOutput "output.log" -NoNewWindow
⚠️ 注意:关闭 CMD 窗口会终止进程,建议使用服务方式长期运行。
方式二:注册为 Windows 服务(推荐长期运行)
使用工具将 JAR 包注册为 Windows 服务,开机自启、后台运行。
推荐工具:
- NSSM (Non-Sucking Service Manager)(最简单)
- WinSW (Windows Service Wrapper)
使用 NSSM 示例:
- 下载 NSSM:https://nssm.cc/download
- 解压后运行
nssm install MyJavaApp - 配置:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar D:javaappsmyapp.jar - Startup directory:
D:javaapps
- Path:
- 点击 “Install service”
- 启动服务:
net start MyJavaApp
方式三:使用 Tomcat 部署 WAR 项目
- 下载 Apache Tomcat(如 9.x 或 10.x):https://tomcat.apache.org
- 解压到
C:tomcat - 将 WAR 文件放入
webapps目录 - 启动 Tomcat:
C:tomcatbinstartup.bat - 访问:
http://your-server-ip:8080/your-app-name
可将 Tomcat 安装为服务(使用
service.bat install)
四、配置防火墙与端口
确保服务器防火墙允许应用端口(如 8080):
- 打开“高级安全 Windows 防火墙”
- 添加入站规则 → 端口 → TCP → 特定本地端口(如 8080)
- 允许连接
或使用命令:
netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080
五、域名与反向X_X(可选)
如果需要通过域名访问,可搭配 IIS + ARR(Application Request Routing)做反向X_X:
- 安装 IIS 和 ARR 模块
- 配置网站绑定域名
- 设置 ARR 规则,将请求转发到
localhost:8080
六、日志监控与维护
- 查看日志文件(应用日志、Windows 事件日志)
- 使用任务管理器或
jps命令查看 Java 进程 - 定期备份和更新
七、安全建议
- 不要使用默认端口暴露管理接口
- 更新 JDK 补丁
- 使用强密码保护服务器
- 限制远程桌面访问 IP
总结
| 需求 | 推荐方案 |
|---|---|
| Spring Boot JAR | NSSM 注册为服务 |
| 传统 Web 项目(WAR) | Tomcat 部署 |
| 高可用、反向X_X | IIS + ARR + Tomcat/JAR |
| 自动启动、后台运行 | 必须使用服务方式 |
如有具体项目类型(如 Spring Boot、普通 Java Web、微服务等),可提供更详细部署脚本或配置。
是否需要我为你生成一个自动部署脚本(BAT 或 PowerShell)?
CLOUD云计算