在 Windows Server 上部署 Java 项目是完全可行的,尤其适用于运行基于 Spring Boot、Spring MVC、Java EE 等框架开发的 Web 应用。以下是详细的部署步骤和建议:
✅ 一、环境准备
1. 安装 Java 运行环境(JRE 或 JDK)
-
下载 JDK:
- 推荐使用 Oracle JDK 或 OpenJDK(免费开源)。
-
安装 JDK:
- 下载
.msi安装包,双击安装即可。
- 下载
-
配置环境变量:
JAVA_HOME = C:Program FilesJavajdk-17 Path += %JAVA_HOME%bin注意:路径不要包含空格或中文。
-
验证安装:
java -version javac -version
2. 打包 Java 项目(通常为 JAR 或 WAR)
-
如果是 Spring Boot 项目:
使用 Maven 或 Gradle 打成可执行 JAR 包:mvn clean package生成文件如:
target/myapp.jar -
如果是传统 Web 项目(WAR):
需要配合 Tomcat 等容器部署。
✅ 二、部署方式选择
方式一:直接运行 JAR 文件(推荐用于 Spring Boot)
java -jar myapp.jar
后台运行(不关闭窗口时仍运行):
start /b java -jar myapp.jar > app.log 2>&1
开机自启或服务化(推荐使用 NSSM 工具):
-
下载 NSSM (Non-Sucking Service Manager)
-
安装为 Windows 服务:
nssm install MyJavaApp在弹出窗口中设置:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar "D:myappmyapp.jar" - Startup directory:
D:myapp
- Path:
-
启动服务:
nssm start MyJavaApp
优点:开机自启、崩溃自动重启、日志记录等。
方式二:使用 Tomcat 部署 WAR 包
- 下载并安装 Apache Tomcat for Windows
- 解压到目录,例如:
D:tomcat - 将打包好的
myapp.war放入webapps目录 - 启动 Tomcat:
D:tomcatbinstartup.bat - 访问应用:
http://localhost:8080/myapp
可通过
tomcat9.exe //IS//安装为系统服务实现开机启动。
✅ 三、配置防火墙与端口访问
确保服务器防火墙允许外部访问你的应用端口(如 8080):
- 打开「高级安全 Windows Defender 防火墙」
- 添加入站规则 → 端口 → TCP → 特定本地端口(如 8080)
- 允许连接
或者命令行:
netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080
✅ 四、域名绑定与反向X_X(可选)
如果你希望使用域名或 80/443 端口,建议使用 IIS + ARR 或 Nginx 做反向X_X。
示例:使用 IIS + Application Request Routing (ARR)
- 安装 IIS 和 ARR 模块
- 创建网站,绑定域名
- 设置 URL Rewrite 规则,将请求X_X到
http://localhost:8080 - 用户访问
http://yourdomain.com→ 实际由 Java 应用处理
✅ 五、监控与日志管理
- 日志输出重定向到文件:
java -jar myapp.jar > logs/app.log 2>&1 - 使用
Logrotate或脚本定期清理日志 - 可集成 Windows Event Log(通过代码或工具)
✅ 六、常见问题排查
| 问题 | 解决方案 |
|---|---|
java is not recognized |
检查 JAVA_HOME 和 Path 是否正确 |
| 端口被占用 | netstat -ano | findstr :8080 查看并杀进程 |
| 应用启动失败 | 查看控制台或日志文件错误信息 |
| 网络无法访问 | 检查防火墙、云服务器安全组 |
✅ 七、最佳实践建议
- 使用 NSSM 将 Java 程序注册为服务,便于管理
- 使用 日志轮转 防止日志过大
- 定期备份和更新 JDK
- 生产环境建议使用 JRE 而非完整 JDK(节省空间)
- 考虑使用 Docker 容器化部署(更现代、一致)
示例:完整部署流程(Spring Boot)
# 1. 构建项目
mvn clean package
# 2. 上传 jar 到服务器 D:appmyapp.jar
# 3. 使用 NSSM 安装为服务
nssm install MySpringBootApp
# 4. 设置参数后启动
nssm start MySpringBootApp
# 5. 检查是否运行
netstat -ano | findstr :8080
如有具体项目类型(如 Spring Boot、普通 Web、微服务等),可提供更详细指导。欢迎补充你的项目结构和技术栈。
CLOUD技术博