目录

  • Procrun 的安装与卸载
    • 一. 下载 Procrun
    • 二. 启动服务目录设置
    • 三. 目录配置
    • 四. 确定 JAR 包 Main-Class 值
    • 五. 编写安装服务的脚本
    • 五. 编写卸载服务的脚本
  • 部署Windows服务
    • 一. 安装服务
    • 二. 启动服务
    • 三. 卸载服务

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 offrem 设置程序名称
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.JarLauncherrem 设置prunsrv路径
set SRV=%BASEDIR%\Service\prunsrv.exerem 设置日志路径及日志文件前缀
set LOGPATH=%BASEDIR%\Logsrem 输出信息
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 offcd..
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 即可,如下图:

然后重启电脑即可看见对应的服务已经没有了

Windows系统使用Procrun部署SpringBoot的JAR包相关推荐

  1. Windows server2008部署SpringBoot的jar项目

    Windows server2008部署SpringBoot的jar项目 1.服务器安装配置JDK(如果安装请忽略) 2.服务器部署 优质资源分享 1.服务器安装配置JDK(如果安装请忽略) JDK1 ...

  2. Windows系统的桌面部署Desktop Deployment(4)

    Windows系统的桌面部署Desktop Deployment(4) Windows PE2.0的进一步探讨 一. Windows PE2.0 程序/语言包 在PE 2.0中提供了下面的程序/语言包 ...

  3. 【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署

    一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多 ...

  4. Linux系统中后台运行java项目jar包指令

    Linux系统中后台运行java项目jar包指令 windows环境下后台运行jar包程序: https://blog.csdn.net/qq_36763419/article/details/109 ...

  5. 解决springboot读取jar包中文件的问题

    解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...

  6. Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像

    DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包 准备文件 一:官网下载Linux的JDK包 https://www.oracle.com/j ...

  7. jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例...

    dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例 1.镜像构建命令:docker build 图解 启动命令:(注意最后面有一个点,不要忘记) doc ...

  8. [maven] springboot将jar包打包到指定目录

    大家好,我是烤鸭: 今天分享一下springboot将jar包打包到指定目录下. 由于之前上线都是一个打包到一个jar,由于服务多了,1个包100多M,哪怕是小版本上线都需要重新上传jar包. 1.目 ...

  9. Springboot打jar包项目无法访问jsp问题解决

    Springboot打jar包项目无法访问jsp问题解决 参考文章: (1)Springboot打jar包项目无法访问jsp问题解决 (2)https://www.cnblogs.com/vicF/p ...

最新文章

  1. Centos7单端口单配置文件多IP
  2. Eclipe 新建maven web 项目
  3. Python学习笔记:入门(2)
  4. 上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
  5. 前端学习(2219):react之jsx小案例
  6. mysql group by 两列_MySQL GROUP BY两列
  7. 逻辑回归详解及Python实现
  8. 【整理】牛客网编程题-前端篇(简单难度)
  9. 4.PHP的运行方式
  10. 动易html在线编辑器 漏洞,动易网站漏洞总结
  11. 常用SQL_数据库查询总结1
  12. CASIA-B步态数据集的一些粗糙理解
  13. 听不够的三国,淡淡的乡愁
  14. 华为手机卡在升级界面_华为手机停在开机画面的解决方法【图文教程】
  15. 加载.npz文件时,出现错误:OSError: Failed to interpret file ‘xxx.npz‘ as a pickle
  16. 【定义】向量与向量组
  17. 编辑器 · Babel 中文文档
  18. Windows2012的VPN服务与测试
  19. UVM通信篇之五:TLM2通信
  20. apicloud (第五篇 bmap百度地图一键回到当前位置)

热门文章

  1. 嵌入式linux之yocto(六)devtool往返开发
  2. [原创]java实现word转pdf
  3. 1725 天黑请闭眼
  4. 谷歌浏览器崩溃设置崩溃_Google的广告业务开始崩溃了吗?
  5. C++笔记 蒙特卡罗计算π值
  6. 用计算机视觉描述机器人,一文读懂计算机视觉和机器人视觉
  7. 数据决策系统功能整理
  8. woj 1537 Stones I
  9. 牛客网小白二(2018.4.21)
  10. 基于circom、snarkjs实现零知识证明不透漏具体地理位置的区域监控