你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt

jar注册为服务的方式

1、采用nssm工具管理

nssm install MyJavaApp "C:\Program Files\Java\jdk-17\bin\java.exe"
nssm set MyJavaApp AppParameters "-jar C:\path\to\1.jar"
nssm set MyJavaApp AppDirectory "C:\path\to\"
nssm set MyJavaApp AppStdout "C:\logs\service.log"
nssm set MyJavaApp AppStderr "C:\logs\error.log"

 

❌ 错误方式,避免使用

 nssm install MyJavaApp "cmd /c start java -jar 1.jar"

也不要使用将命令做成bat文件,然后加载bat(nssm不好管理cmd进程,不稳定)

nssm install MyJavaApp "C:\path\to\run.bat"

 

 

2、用monitorService.exe工具管理

MonitorService.exe 是另一种轻量级的 Windows 服务封装工具,类似于 NSSM,但更简单易用。它可以直接将任意可执行程序(如 java -jar)注册为系统服务,并提供进程监控、自动重启等功能。


1. 下载 MonitorService


2. 配置服务

(1) 创建 MonitorService.xml

在 JAR 文件所在目录创建 MonitorService.xml,内容如下:

<service>
  <id>MyJavaApp</id>
  <name>MyJavaApp Service</name>
  <description>Runs MyJavaApp as a Windows Service</description>
  <executable>java</executable>
  <arguments>-jar "C:\path\to\1.jar"</arguments>
  <logmode>rotate</logmode>
  <onfailure action="restart" delay="10 sec"/>
</service>

参数说明:

  • <id>:服务唯一标识(如 MyJavaApp)。

  • <name>:服务显示名称。

  • <executable>:Java 可执行文件路径(java 或完整路径如 C:\Program Files\Java\jdk-17\bin\java.exe)。

  • <arguments>-jar 参数指定 JAR 文件路径。

  • <onfailure>:进程崩溃时自动重启(可选)。


(2) 注册服务

在命令行运行:

MonitorService.exe install

这会读取当前目录下的 MonitorService.xml 并注册服务。


(3) 启动服务

net start MyJavaApp

或:

sc start MyJavaApp

3. 管理服务

命令功能
MonitorService.exe install 安装服务
MonitorService.exe uninstall 卸载服务
MonitorService.exe start 启动服务
MonitorService.exe stop 停止服务
MonitorService.exe restart 重启服务
MonitorService.exe status 查看服务状态

4. 日志管理

  • 默认日志路径:MonitorService.exe 同目录下的 logs 文件夹。

  • 自定义日志(在 MonitorService.xml 中配置):

    <logpath>C:\logs\MyJavaApp</logpath>
    <logmode>roll</logmode>
  •  
posted @ 2025-07-23 15:11  weipt  阅读(41)  评论(0)    收藏  举报

你的想法很重要-大家都来谈 (C)Copyright 2012 by WeiPt