Windows系统使用Procrun部署SpringBoot的JAR包

Procrun 的安装与卸载

Procrun 是一组应用程序,允许 Windows 用户将(大部分)Java 应用程序(例如 Tomcat)包装为 Windows 服务。
该服务可以设置为在机器启动时自动启动,并且在没有用户登录机器的情况下继续运行。(官网地址
它主要包括两个程序:

  • 服务应用程序(名为 prunsrv.exe),用于转换任一应用程序作为 Windows 服务运行。
  • 监视器应用程序(名为 prunmgr.exe),用于监视和配置 procrun 服务。

一. 下载 Procrun

下载地址:http://www.apache.org/dist/commons/daemon/binaries/windows/
在这里插入图片描述
下载完成后解压,如下图:
在这里插入图片描述

二. 启动服务目录设置

首先在准备部署项目的文件夹下创建一个目录,比如我这里叫做 SpringForWinServiceDemo_Procrun,然后在其下创建三个文件夹,分别是 JAR、Logs 和 Service,如下图:
在这里插入图片描述

  • JAR 文件夹,用来放 SpringBoot 打出来的 JAR 包;
  • Logs 文件夹用来保存 Windows Service 的运行日志,目前是空的;
  • Service 文件夹用来存放 Procrun 的 exe 文件。

三. 目录配置

  1. 将解压的 commons-daemon-1.2.0-bin-windows\amd64 文件夹下的 prunsrv.exe,拷贝到 Service 文件夹中;
  2. 将 commons-daemon-1.2.0-bin-windows 文件夹下的 prunmgr.exe,拷贝到 Service 文件夹中,并重命名,我这里命名为 SpringForWinServiceDemo.exe。
    在这里插入图片描述

四. 确定 JAR 包 Main-Class 值

  1. 使用压缩软件打开 JAR 文件夹下的 jar 包,进入这个META-INF文件夹;
    在这里插入图片描述
  2. 使用记事本打开 MANIFEST.MF 文件;
    在这里插入图片描述
  3. 记住 Main-Class 的值。
    在这里插入图片描述

五. 编写安装服务的脚本

在 Service 文件夹下创建一个文档文本,打开编辑:

@echo off
 
rem 设置程序名称
set SERVICE_EN_NAME=SpringForWinServiceDemo
set SERVICE_CH_NAME=Spring演示服务
 
rem 设置java路径
set JAVA_HOME=%JAVA_HOME%
 
rem 设置程序依赖及程序入口类
cd..
set BASEDIR=%CD%
set CLASSPATH=%BASEDIR%\JAR\springforwinservice-0.0.1-SNAPSHOT.jar
set MAIN_CLASS=org.springframework.boot.loader.JarLauncher
 
rem 设置prunsrv路径
set SRV=%BASEDIR%\Service\prunsrv.exe
 
rem 设置日志路径及日志文件前缀
set LOGPATH=%BASEDIR%\Logs
 
rem 输出信息
echo SERVICE_NAME: %SERVICE_EN_NAME%
echo JAVA_HOME: %JAVA_HOME%
echo MAIN_CLASS: %MAIN_CLASS%
echo prunsrv path: %SRV%
 
rem 设置jvm
if "%JVM%" == "" goto findJvm
if exist "%JVM%" goto foundJvm
:findJvm
set "JVM=%JAVA_HOME%\jre\bin\server\jvm.dll"
if exist "%JVM%" goto foundJvm
echo can not find jvm.dll automatically,
echo please use COMMAND to localation it
echo then install service
goto end
:foundJvm
echo 正在安装服务...
rem 安装
"%SRV%" //IS//%SERVICE_EN_NAME% --DisplayName="%SERVICE_CH_NAME%" "--Classpath=%CLASSPATH%" "--Install=%SRV%" "--JavaHome=%JAVA_HOME%" "--Jvm=%JVM%" --JvmMs=256 --JvmMx=1024 --Startup=auto --JvmOptions=-Djcifs.smb.client.dfs.disabled=false ++JvmOptions=-Djcifs.resolveOrder=DNS --StartMode=jvm --StartClass=%MAIN_CLASS% --StartMethod=main --StopMode=jvm --StopClass=%MAIN_CLASS% --StopMethod=main --StopParams=  --LogPath=%LOGPATH% --StdOutput=auto --StdError=auto
echo 安装服务完成。
pause

将文档文本名称修改成 install.bat
详细解释如图:
在这里插入图片描述

五. 编写卸载服务的脚本

在 Service 文件夹下创建一个文档文本,打开编辑:

@echo off
 
cd..
set basedir=%CD%
set SERVICE_NAME=SpringForWinServiceDemo
set SRV=%BASEDIR%\Service\prunsrv.exe
echo 正在卸载服务...
"%SRV%" //DS//%SERVICE_NAME%
echo 服务卸载完毕。
pause

将文档文本名称修改成 uninstall.bat

部署Windows服务

一. 安装服务

执行 install.bat,如下图:
在这里插入图片描述
提示“安装服务完成”后,使用 win + r 组合快捷键打开“运行”窗口,之后输入 services.msc 按下回车键,即可打开“服务”。
在这里插入图片描述

在“服务”中找到 install.bat 文件里 SERVICE_CH_NAME 中设置的名称,证明服务已经安装,如下图:

在这里插入图片描述

二. 启动服务

装好的服务还没有启动,我们需要手动将其启动,回到 Service 文件夹,双击打开 SpringForWinServiceDemo.exe,然后点击“开始”,如下:
在这里插入图片描述
如果一切正常的话,服务就可以成功启动了,如下图:
在这里插入图片描述
再次回到“服务”列表页,刷新后,可以看到服务的状态为“正在运行”,如下图:
在这里插入图片描述
注意,如果服务起不来的话,一定要去检查 Procrun 的 log,在这里:
在这里插入图片描述

三. 卸载服务

如果想要卸载服务,运行 uninstall.bat 即可,如下图:
在这里插入图片描述
然后重启电脑即可看见对应的服务已经没有了

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值