使用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 <服务名>