# Windows 服务配置教程(WinSW & NSSM)

WinSW(Windows Service Wrapper)和 NSSM(Non-Sucking Service Manager)是两种常见的方法,可以将 JAR 包、Nginx、Node.js 服务器等注册为 Windows 服务,实现 后台运行开机自启

# 1. 使用 WinSW 配置 Windows 服务

# 1.1 下载 WinSW

  • 📥 官网下载https://github.com/winsw/winsw/releases
  • 🔽 下载 WinSW-x64.exe
  • 📝 重命名MyService.exe
  • 📂 放置到应用目录(例如 C:\myapp\

# 1.2 配置 XML 文件

C:\myapp\ 目录下,新建 MyService.xml ,内容如下:

# 示例 1:运行 JAR 包

<service>
  <id>MyJavaService</id>
  <name>My Java Service</name>
  <description>Java Application as Windows Service</description>
  <executable>C:\Program Files\Java\jdk-XX\bin\java.exe</executable>
  <arguments>-jar C:\myapp\app.jar</arguments>
  <workingdirectory>C:\myapp</workingdirectory>
  <logmode>roll</logmode>
  <stdoutlog>C:\myapp\logs\service.log</stdoutlog>
  <stderrlog>C:\myapp\logs\error.log</stderrlog>
  <startmode>Automatic</startmode>
  <delayedAutoStart>true</delayedAutoStart>
  <env name="JAVA_HOME" value="C:\Program Files\Java\jdk-XX" />
  <onfailure action="restart" delay="10 sec" />
</service>

# 示例 2:运行 Nginx

<service>
  <id>VueNginxService</id>
  <name>Vue Nginx Server</name>
  <description>Vue Frontend using Nginx</description>
  <executable>C:\nginx\nginx.exe</executable>
  <logmode>roll</logmode>
</service>

# 1.3 WinSW XML 配置参数详解

参数说明
<id>服务的唯一标识,不能重复,例如 MyJavaService
<name>显示在 Windows 服务管理器中的服务名称
<description>服务的描述信息
<executable>要运行的可执行文件路径,例如 java.exe
<arguments>传递给 executable 的参数,例如 -jar app.jar
<workingdirectory>运行该程序的工作目录
<logmode>日志模式,如 roll (自动滚动日志)或 reset (每次重启清空日志)
<stdoutlog>标准输出日志文件路径
<stderrlog>错误日志文件路径
<startmode>设定服务启动方式,可选: Automatic (自动)、 Manual (手动)、 Disabled (禁用)、 Boot (系统引导时启动)、 System (操作系统初始化时启动)
<delayedAutoStart>true 表示延迟启动,适用于需要依赖其他服务的情况
<env>设置环境变量,例如 <env name="JAVA_HOME" value="C:\\Program Files\\Java\\jdk-XX" />
<onfailure>设定失败后的处理方式,例如 <onfailure action="restart" delay="10 sec" /> 代表 10 秒后重启

# 1.4 安装与管理服务

# 🛠 安装服务
MyService.exe install
# ▶ 启动服务
MyService.exe start
# ⏹ 停止服务
MyService.exe stop
# ❌ 卸载服务
MyService.exe uninstall
# 🔄 重启服务
MyService.exe restart

# 2. 使用 NSSM 配置 Windows 服务

# 2.1 下载 NSSM

  • 📥 官网下载https://nssm.cc/download
  • 🔽 解压C:\nssm\
  • 📂 找到 **** nssm.exe (位于 win64 目录中)

# 2.2 安装 JAR 作为服务

C:\nssm\win64\nssm.exe install MyJavaService

👆 运行后,会弹出 GUI 配置窗口。

# 2.3 GUI 配置步骤

  1. Application 选项卡:
    • Path: C:\Program Files\Java\jdk-XX\bin\java.exe
    • Startup Directory: C:\myapp
    • Arguments: -jar C:\myapp\app.jar
  2. Details 选项卡:
    • Display name: My Java Service
    • Description: Java Application running as Windows Service
  3. Log on 选项卡:
    • 保持默认 LocalSystem 或选择特定用户
  4. I/O 选项卡(可选):
    • Output log file: C:\myapp\logs\service.log
    • Error log file: C:\myapp\logs\error.log
  5. ** 点击 ** Install Service 按钮

# 2.4 NSSM 服务管理命令

# 🛠 安装服务
nssm install MyJavaService
# ▶ 启动服务
nssm start MyJavaService
# ⏹ 停止服务
nssm stop MyJavaService
# ❌ 删除服务
nssm remove MyJavaService confirm

# 3. WinSW vs NSSM 对比

特性WinSWNSSM
🎛 需要 GUI 操作
⚙ 配置方式XMLGUI / 命令
☕ 适用于 JAR
🌐 适用于 Nginx
📄 日志管理✅( logmode 配置)✅(手动配置)

# 最佳选择

  • 🚀 WinSW 适合 运维 / DevOps,可灵活配置
  • NSSM 适合 快速安装

更新于 阅读次数

请我喝[茶]~( ̄▽ ̄)~*

ZJM 微信支付

微信支付

ZJM 支付宝

支付宝