在 Windows Server 上部署 Java 程序是一个常见需求,尤其是在企业级应用中。以下是详细的步骤和最佳实践,帮助你在 Windows Server 上成功部署 Java 应用程序(如 Spring Boot、Java Web 应用等)。
✅ 一、准备工作
1. 安装 Java 运行环境(JRE 或 JDK)
方法一:下载并安装 Oracle JDK / OpenJDK
- 推荐使用 OpenJDK(免费且开源),例如:
- Adoptium (Eclipse Temurin)
- Amazon Corretto
- Microsoft Build of OpenJDK
- 下载适用于 Windows 的
.msi安装包。 - 安装后配置环境变量。
配置环境变量(以 JDK 17 为例)
- 打开“系统属性” → “高级” → “环境变量”
- 添加或修改以下变量:
JAVA_HOME = C:Program FilesJavajdk-17
Path += %JAVA_HOME%bin
📌 注意:路径根据实际安装位置调整。
- 验证安装:
打开 CMD,输入:java -version javac -version
✅ 二、准备 Java 程序
通常 Java 程序打包为:
.jar文件(如 Spring Boot 应用).war文件(部署到 Tomcat 等容器)
假设你有一个 myapp.jar 文件。
✅ 三、部署方式(推荐几种)
方式 1:直接运行 JAR 文件(适合 Spring Boot)
步骤:
- 将
myapp.jar上传到服务器某个目录,例如:D:appsmyappmyapp.jar - 打开命令行,进入目录:
cd D:appsmyapp - 启动应用:
java -jar myapp.jar
默认监听
localhost:8080,可通过浏览器访问。
设置后台运行(重要!)
直接运行会阻塞终端,关闭窗口即停止服务。
解决方案:
使用 nohup 不适用(Windows 没有),改用:
start /B java -jar myapp.jar > output.log 2>&1
或者写一个批处理脚本 start.bat:
@echo off
cd /d D:appsmyapp
start "MyApp" java -jar myapp.jar --spring.profiles.active=prod
但更推荐使用 Windows 服务 来管理。
方式 2:将 Java 程序注册为 Windows 服务(推荐生产环境)
这样可以实现开机自启、崩溃自动重启。
工具推荐:NSSM(Non-Sucking Service Manager)
-
下载 NSSM:https://nssm.cc/download
- 下载
win64版本解压即可,无需安装。
- 下载
-
使用 NSSM 安装服务:
nssm install MyJavaApp弹出窗口填写:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar D:appsmyappmyapp.jar - Startup directory:
D:appsmyapp
- Path:
-
点击 “Install service”
-
启动服务:
nssm start MyJavaApp -
可通过“服务”管理器查看状态,设置自动启动。
方式 3:使用 Tomcat 部署 WAR 包(传统 Web 应用)
- 下载 Apache Tomcat(Windows 版):https://tomcat.apache.org/
- 解压到
D:tomcat - 将你的
myapp.war放入D:tomcatwebapps - 启动 Tomcat:
D:tomcatbinstartup.bat - 访问:
http://your-server-ip:8080/myapp
建议也把 Tomcat 注册为 Windows 服务(使用
service.bat install)
✅ 四、网络与防火墙配置
确保客户端能访问你的 Java 程序端口(如 8080):
1. 开放防火墙端口
- 打开“高级安全 Windows 防火墙”
- 添加入站规则,允许 TCP 端口
8080
2. 检查服务器安全组(云服务器)
- 如阿里云、腾讯云、AWS,需在控制台开放安全组端口。
✅ 五、日志监控与维护
- 日志输出建议重定向到文件:
java -jar myapp.jar > app.log 2>&1 - 使用工具如 Logrotate(Windows 可用 PowerShell 脚本轮转日志)
- 建议结合 Windows Event Viewer 查看服务运行状态
✅ 六、性能优化建议
- 设置 JVM 参数(示例):
java -Xms512m -Xmx2g -jar myapp.jar - 生产环境建议使用
-server模式(现代 JVM 默认开启) - 监控内存使用情况(任务管理器或 JVisualVM)
✅ 七、补充:使用 PowerShell 脚本管理
创建 deploy.ps1 自动化部署:
Stop-Process -Name java -Force
Copy-Item "C:tempmyapp-new.jar" "D:appsmyappmyapp.jar" -Force
Start-Process java -ArgumentList "-jar myapp.jar" -WorkingDirectory "D:appsmyapp" -NoNewWindow
✅ 总结:推荐流程(生产环境)
| 步骤 | 内容 |
|---|---|
| 1 | 安装 OpenJDK 并配置 JAVA_HOME |
| 2 | 将 jar/war 文件上传到服务器 |
| 3 | 使用 NSSM 将 Java 程序注册为 Windows 服务 |
| 4 | 配置防火墙和安全组开放端口 |
| 5 | 设置日志输出和定期备份 |
| 6 | (可选)使用 Nginx/Apache 做反向X_X |
如果你提供具体的应用类型(如 Spring Boot、普通 JAR、WAR)、是否需要 HTTPS、域名绑定等,我可以给出更具体的配置方案。
需要我帮你写一个 NSSM 配置脚本或自动化部署脚本吗?
CLOUD技术博