使用nssm将jar包注册成windows服务

下载

下载nssm,下载 nssm-2.24.zip,解压后复制 win64/nssm.exe 到 D:/javaServer/ 目录。

方式一

创建.bat文件

创建文本文件,重命名为install_server.bat文件。

@echo off
set "SERVICE_NAME=MyAdminService"
set "JAR_PATH=D:\javaServer\admin.jar"
set "JAVA_HOME=C:\Program Files\Java\jdk-17\bin\java.exe"  REM 修改为你的JDK路径
set "NSSM_PATH=D:\javaServer\nssm-2.24\win64\nssm.exe"  REM 修改为你的nssm路径

:: 安装服务(静默模式)
"%NSSM_PATH%" install %SERVICE_NAME% "%JAVA_EXE%" -jar "%JAR_PATH%"

:: 设置服务描述
"%NSSM_PATH%" set %SERVICE_NAME% Description "admin Background Service"  REM 描述使用中文可能会乱码

:: 设置自动启动
"%NSSM_PATH%" set %SERVICE_NAME% Start SERVICE_AUTO_START

:: 启动服务
net start %SERVICE_NAME%
echo 服务已安装并启动!按任意键退出...
pause

在创建一个卸载服务 uninstall_service.bat

@echo off
set "SERVICE_NAME=MyAdminService"  REM 必须与安装脚本的服务名相同
set "NSSM_PATH=D:\javaServer\nssm-2.24\win64\nssm.exe"  REM 修改为你的nssm路径

net stop %SERVICE_NAME%
"%NSSM_PATH%" remove %SERVICE_NAME% confirm
echo 服务已卸载!按任意键退出...
pause

运行脚本​

如果服务已经启动了,先停止。

​然后以管理员身份运行​ install_service.bat
服务安装成功后可在 services.msc 中看到

方式二(推荐)

在nssm.exe的目录栏中cmd

nssm install

会打开弹窗
图片

Application Path 选择java.exe文件路径
Startup direcotry 选择jar包所在文件目录
Arguments 写启动命令-jar admin.jar 假如你的jar包也叫admin
Service name 给你的服务取个名字
图片

但是它并不会自动启动,需要去 services.msc 中手动启动

或者依然在nssm.exe目录cmd运行
启动:nssm start <服务名>
停止:nssm stop <服务名>
重启:nssm restart <服务名>
删除:nssm remove <服务名>

posted @ 2025-08-06 09:45  Rix里克斯  阅读(111)  评论(0)    收藏  举报