在 Windows Server 上安装 Java 服务,通常是指将 Java 应用程序(如 Spring Boot、Tomcat 或其他基于 Java 的应用)作为 Windows 服务运行,这样可以在系统启动时自动运行,无需用户登录即可保持后台运行。
以下是详细的步骤来在 Windows Server 上将 Java 程序部署为服务:
✅ 方法一:使用 NSSM(Non-Sucking Service Manager)——推荐
NSSM 是一个简单易用的工具,可以将任意可执行文件(包括 Java 程序)注册为 Windows 服务。
步骤 1:下载并安装 Java
确保你的 Windows Server 已安装 Java 运行环境(JRE 或 JDK)。
- 下载地址(以 Oracle 或 OpenJDK 为例):
- Oracle Java
- OpenJDK
安装后配置环境变量 JAVA_HOME 和将 java 加入 PATH。
验证安装:
java -version
步骤 2:下载 NSSM
- 官网:https://nssm.cc/download
- 下载
nssm-<version>-win64.zip(64位服务器) - 解压后进入
win64目录,找到nssm.exe
步骤 3:使用 NSSM 安装 Java 服务
-
以管理员身份运行命令提示符或 PowerShell。
-
执行:
nssm install MyJavaApp(
MyJavaApp是你自定义的服务名称) -
弹出窗口中填写以下信息:
-
Path: Java 可执行路径(通常是
java.exe的完整路径)C:Program FilesJavajdk-17binjava.exe -
Startup directory: 你的 Java 程序所在目录(即 jar 包所在的路径)
D:myapp -
Arguments: 启动参数,例如:
-jar myapp.jar --spring.profiles.active=prod
-
-
点击 “Install service”
步骤 4:启动服务
可以通过以下方式启动服务:
-
使用 NSSM GUI:
nssm start MyJavaApp -
或通过服务管理器:
- 按
Win + R→ 输入services.msc - 找到
MyJavaApp→ 右键“启动”
- 按
步骤 5:设置开机自启(默认已设置)
NSSM 默认设置为“自动启动”,可在服务属性中确认。
✅ 方法二:使用 Apache Commons Daemon (procrun)
适用于更高级场景,比如需要与 Tomcat 集成或精细控制。
- 下载
prunsrv.exe(来自 Apache Commons Daemon) - 配置
.ini文件或命令行注册服务 - 示例命令:
prunsrv.exe install MyJavaApp ^ --DisplayName="My Java Application" ^ --Startup=auto ^ --Jvm=auto ^ --Classpath="D:myappmyapp.jar" ^ --StartMode=jvm ^ --StartClass=com.example.Main ^ --StartMethod=main
更复杂,适合开发人员集成到发布流程中。
✅ 方法三:使用 PowerShell 脚本 + 任务计划程序(替代方案)
如果不想用第三方工具,可以用 PowerShell 写脚本,并通过任务计划程序设置“开机启动”。
但不如 NSSM 稳定和专业。
🔐 注意事项
-
权限问题:
- 服务默认以
Local System账户运行,若需访问网络或文件共享,建议创建专用账户并赋予适当权限。
- 服务默认以
-
日志输出:
- 在 NSSM 中可以设置输出重定向日志文件路径,便于排查问题。
-
防火墙:
- 确保开放 Java 应用使用的端口(如 8080)。
-
Java 版本匹配:
- 确保使用正确架构(32/64位)的 Java 和 NSSM。
🧪 测试服务是否正常运行
-
查看服务状态:
nssm status MyJavaApp -
查看日志输出(在 NSSM 配置中指定的日志路径)
-
使用浏览器或
curl访问应用接口测试。
✅ 总结
| 方法 | 推荐度 | 说明 |
|---|---|---|
| NSSM | ⭐⭐⭐⭐⭐ | 简单、稳定、可视化 |
| Procrun | ⭐⭐⭐☆ | 更底层,适合嵌入式部署 |
| PowerShell | ⭐⭐☆ | 替代方案,不够专业 |
👉 强烈推荐使用 NSSM,它是最简单、最可靠的将 Java 程序部署为 Windows 服务的方式。
如果你提供具体的 Java 应用类型(如 JAR、Spring Boot、Tomcat),我可以给出更精确的配置示例。
秒懂云