在 Windows Server 上部署 Java 服务,通常包括以下几个步骤:安装 Java 环境、准备 Java 应用(如 JAR 包)、配置服务运行方式(推荐使用 Windows 服务方式),并确保服务稳定运行。以下是详细步骤:
✅ 一、安装 Java 运行环境(JRE/JDK)
-
下载 JDK 或 JRE
- 推荐使用 Oracle JDK、OpenJDK(如 Adoptium/Temurin、Amazon Corretto、Azul Zulu)
- 下载地址示例:
- Eclipse Adoptium (Temurin)
- Amazon Corretto
- Azul Zulu
-
安装 JDK
- 运行安装程序,建议安装到标准路径,例如:
C:Program FilesEclipse Adoptiumjdk-17.0.9.9-hotspot
- 运行安装程序,建议安装到标准路径,例如:
-
配置环境变量
-
打开“系统属性” → “高级” → “环境变量”
-
添加或修改以下变量:
变量名 值 JAVA_HOMEC:Program FilesEclipse Adoptiumjdk-17.0.9.9-hotspotPath添加 %JAVA_HOME%bin -
验证安装:
java -version javac -version (如果安装了JDK)
-
✅ 二、准备 Java 应用
假设你的 Java 服务是一个 Spring Boot 打包的 JAR 文件,例如:
myapp.jar
-
将 JAR 文件放到一个目录,例如:
D:javaappsmyappmyapp.jar -
测试运行(命令行):
java -jar D:javaappsmyappmyapp.jar确保应用能正常启动。
✅ 三、将 Java 应用注册为 Windows 服务(推荐)
Java 本身不能直接作为 Windows 服务运行,需要借助工具。推荐使用 NSSM (Non-Sucking Service Manager)。
方法:使用 NSSM 将 Java 程序注册为服务
-
下载 NSSM
- 官网:https://nssm.cc/download
- 下载
nssm-2.24.zip,解压后选择对应系统架构(win64 或 win32)
-
安装服务
- 打开命令提示符(管理员权限)
- 进入 NSSM 目录,运行:
nssm install MyJavaApp -
弹出配置窗口:
配置项 值 Path C:Program FilesEclipse Adoptiumjdk-17.0.9.9-hotspotbinjava.exeArguments -jar D:javaappsmyappmyapp.jarStartup directory D:javaappsmyapp其他可选配置:
- 日志目录(I/O):设置标准输出和错误日志路径
- 服务名称:
MyJavaApp - 描述:可填写“我的Java后端服务”
-
启动服务
nssm start MyJavaApp或通过“服务”管理器(
services.msc)启动。 -
设置开机自启
- 在 NSSM 配置中,
Details→Start type→ 选择Automatic
- 在 NSSM 配置中,
✅ 四、(可选)使用 PowerShell 脚本 + 任务计划程序
如果不使用 NSSM,也可以写一个 .bat 脚本,并用 Windows 任务计划程序设置开机启动。
start.bat
@echo off
cd /d D:javaappsmyapp
java -jar myapp.jar
然后使用任务计划程序设置开机运行此脚本(注意:这种方式无法后台静默运行,会弹出 CMD 窗口,不推荐用于生产)。
✅ 五、配置防火墙和端口
确保应用监听的端口(如 8080)在防火墙中开放:
- 打开“Windows Defender 防火墙” → “高级设置”
- 添加入站规则,允许 TCP 端口(如 8080)
✅ 六、日志与监控
- 配置 Java 应用日志输出到文件(如
logs/app.log) - 使用 NSSM 可设置输出重定向到日志文件
- 可结合 Windows 事件查看器监控服务状态
✅ 七、常见问题排查
| 问题 | 解决方法 |
|---|---|
| 服务启动后立即停止 | 检查 java.exe 路径是否正确,JAR 路径是否正确,权限是否足够 |
| 报错“找不到或无法加载主类” | 检查 JAR 是否损坏,是否为可执行 JAR(含 Main-Class) |
| 端口被占用 | 使用 netstat -ano | findstr :8080 查看占用进程 |
| 权限不足 | 确保服务运行账户有足够权限(建议使用 Local System 或指定用户) |
✅ 总结
| 步骤 | 工具/方法 |
|---|---|
| 安装 Java | JDK(如 Temurin、Corretto) |
| 运行 JAR | java -jar |
| 注册为服务 | NSSM(推荐) |
| 自启动 | 服务设置为自动启动 |
| 日志管理 | 配置日志文件 + NSSM 输出重定向 |
| 防火墙 | 开放对应端口 |
如果你使用的是 Tomcat、Spring Boot、或微服务架构,部署方式类似,只需将 WAR/JAR 文件放入对应位置,并配置服务即可。
如需进一步自动化部署(如 CI/CD),可结合 Jenkins、Ansible、或 PowerShell 脚本实现。
需要我提供一个完整的 NSSM 部署脚本或 Spring Boot 示例吗?
秒懂云