You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Apache Commons Daemon procrun部署Spring Boot服务遇JarLauncher类查找失败求助

解决procrun找不到JarLauncher的错误及替代方案

问题原因分析

出现FindClass org/springframework/boot/loader/JarLauncher failed错误,核心原因集中在三点:

  • 打包的Jar不是完整的可执行Fat Jar,缺少JarLauncher类
  • procrun服务配置的类路径、主类或JVM路径错误
  • 服务运行账户无Jar包或JDK目录的访问权限

针对procrun的修复步骤

1. 确认Fat Jar的完整性

执行以下命令检查Jar包内是否包含目标类:

jar tf your-app.jar | findstr "org/springframework/boot/loader/JarLauncher.class"

如果无输出,说明打包不完整,重新执行mvn clean package确保spring-boot-maven-plugin正确执行(该插件默认绑定package阶段,会生成包含所有依赖的Fat Jar)。

2. 修正procrun服务配置

重新安装服务时,确保参数准确:

prunsrv.exe //IS//RESTApi ^
  --DisplayName="RESTApi Service" ^
  --Description="Spring Boot REST API Service" ^
  --Install="C:\tools\procrun\prunsrv.exe" ^
  --StartMode=jvm ^
  --StartClass=org.springframework.boot.loader.JarLauncher ^
  --StartPath="C:\apps\restapi" ^
  --Classpath="C:\apps\restapi\your-app.jar" ^
  --Jvm="C:\Program Files\Java\jdk1.8.0_391\jre\bin\server\jvm.dll" ^
  --JvmOptions="-Xmx512m;-Xms256m" ^
  --StopMode=jvm ^
  --StopClass=org.springframework.boot.loader.JarLauncher ^
  --StopParams="stop"

重点注意:

  • --Classpath必须精准指向你的Fat Jar路径
  • --Jvm要使用与procrun匹配的位数(64位procrun对应64位JDK的jvm.dll)
  • Spring Boot 3.x版本主类仍是org.springframework.boot.loader.JarLauncher,无需修改

3. 检查权限配置

确保服务运行账户(默认Local System)拥有Jar包所在目录、JDK目录的读取权限,避免因权限不足无法加载类。

替代工具推荐(无需NSSM)

1. WinSW(Windows Service Wrapper)

轻量开源工具,配置直观:

  1. 下载对应位数的WinSW程序(如WinSW-x64.exe),重命名为restapi-service.exe
  2. 创建同名XML配置文件restapi-service.xml:
<service>
  <id>RESTApi</id>
  <name>RESTApi Service</name>
  <description>Spring Boot REST API Service</description>
  <executable>java</executable>
  <arguments>-jar "C:\apps\restapi\your-app.jar" --spring.profiles.active=prod</arguments>
  <logpath>C:\apps\restapi\logs</logpath>
  <logmode>rotate</logmode>
  <onfailure>restart</onfailure>
  <restartdelay>5000</restartdelay>
</service>
  1. 执行命令安装启动服务:
restapi-service.exe install
restapi-service.exe start

2. Spring Boot原生可执行Jar服务

利用你已配置的<executable>true</executable>,直接将Jar安装为服务:

# 安装服务
your-app.jar install

# 启动服务
net start RESTApi

# 停止服务
net stop RESTApi

# 卸载服务
your-app.jar uninstall

该方式无需额外工具,Spring Boot内置了服务封装逻辑,适合快速部署。

内容的提问来源于stack exchange,提问作者paula

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.01 23:35:59