在 Windows Server 上部署 Java 项目是完全可行的,尤其适用于企业级应用、Web 服务或内部系统。以下是详细的部署步骤和最佳实践:
✅ 一、准备工作
-
确认 Windows Server 版本
- 推荐使用:Windows Server 2016 / 2019 / 2022
- 确保系统为 64 位,以便运行现代 Java 环境
-
安装 Java 运行环境(JRE 或 JDK)
- 下载并安装 JDK(推荐 Oracle JDK 或 OpenJDK)
- 官方下载:https://adoptium.net(推荐 Temurin JDK)
- 安装后配置环境变量:
JAVA_HOME = C:Program FilesJavajdk-17 PATH += %JAVA_HOME%bin - 验证安装:
java -version javac -version
- 下载并安装 JDK(推荐 Oracle JDK 或 OpenJDK)
✅ 二、准备 Java 项目
-
构建项目为可执行 JAR 或 WAR
- 使用 Maven / Gradle 打包:
mvn clean package # 生成 target/your-app.jar - 确保是 可执行 JAR(包含 Main-Class 在 MANIFEST.MF 中)
- 使用 Maven / Gradle 打包:
-
测试本地运行
java -jar your-app.jar
✅ 三、部署方式选择
方式一:直接运行 JAR(Spring Boot 等)
-
上传 JAR 文件到服务器
- 使用 FTP、远程桌面复制、或共享文件夹上传到指定目录,如:
C:deploymyapp.jar
- 使用 FTP、远程桌面复制、或共享文件夹上传到指定目录,如:
-
创建启动脚本(可选)
创建start.bat:@echo off cd /d C:deploy java -jar myapp.jar --spring.profiles.active=prod pause -
后台运行(推荐使用工具)
- 直接运行 CMD 会阻塞,建议使用:
- NSSM(Non-Sucking Service Manager)将 JAR 注册为 Windows 服务
- WinSW(Windows Service Wrapper)
- 直接运行 CMD 会阻塞,建议使用:
✅ 四、推荐:使用 NSSM 将 Java 应用注册为服务
-
下载 NSSM
- 官网:https://nssm.cc
- 下载后解压到
C:nssm
-
运行 NSSM GUI
C:nssmnssm.exe install MyJavaApp -
配置服务
- Application tab:
- Path:
C:Program FilesJavajdk-17binjava.exe - Arguments:
-jar "C:deploymyapp.jar" - Startup directory:
C:deploy
- Path:
- Details tab:
- 服务名称:
MyJavaApp - 描述:
My Spring Boot Application
- 服务名称:
- Log On tab:
- 选择具有权限的账户(如 Administrator)
- Application tab:
-
启动服务
net start MyJavaApp或通过“服务”管理器启动。
✅ 五、配置反向(可选,配合 IIS)
如果使用 IIS 作为前端:
-
安装 IIS 和 ARR(Application Request Routing)
- 使用“服务器管理器”添加角色:
- Web 服务器 (IIS)
- 启用 ARR 模块
- 使用“服务器管理器”添加角色:
-
配置 URL 重写规则
- 将请求(如
http://yourdomain.com/api)转发到http://localhost:8080
- 将请求(如
✅ 六、安全与优化建议
-
防火墙设置
- 开放应用端口(如 8080):
netsh advfirewall firewall add rule name="Java App Port 8080" dir=in action=allow protocol=TCP localport=8080
- 开放应用端口(如 8080):
-
日志管理
- 重定向输出到日志文件:
java -jar app.jar > logsapp.log 2>&1 - 使用 Logback / Log4j 配置日志轮转
- 重定向输出到日志文件:
-
JVM 参数优化
java -Xms512m -Xmx2g -jar app.jar -
监控与自动重启
- 使用 NSSM 设置“自动重启”
- 结合 Windows 事件查看器监控服务状态
✅ 七、常见问题排查
| 问题 | 解决方法 |
|---|---|
java is not recognized |
检查 JAVA_HOME 和 PATH |
| 端口被占用 | netstat -ano | findstr :8080 查看并 kill 进程 |
| 服务启动失败 | 查看 NSSM 日志或事件查看器 |
| 权限不足 | 以管理员身份运行或配置服务登录账户 |
✅ 八、替代方案
| 方案 | 说明 |
|---|---|
| Docker + Windows Server | 使用 Docker Desktop 或 Moby 运行容器化 Java 应用(推荐现代化部署) |
| Tomcat 部署 WAR | 传统 Java Web 项目可部署到 Tomcat |
| 使用 PowerShell 脚本管理 | 编写启动/停止脚本自动化部署 |
✅ 总结
在 Windows Server 上部署 Java 项目是稳定且可行的,尤其适合与 Active Directory、SQL Server、IIS 等微软生态集成的场景。关键步骤:
- 安装 JDK 并配置环境变量
- 打包项目为 JAR
- 使用 NSSM 注册为 Windows 服务(推荐)
- 配置防火墙、日志和 JVM 参数
- (可选)使用 IIS 做反向
如果你提供具体项目类型(如 Spring Boot、普通 Web、还是 JavaFX 后台服务),我可以给出更具体的部署脚本或配置。
PHPWP博客