Windows系统使用Procrun部署SpringBoot的JAR包
目录
- 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 文件。
三. 目录配置
- 将解压的 commons-daemon-1.2.0-bin-windows\amd64 文件夹下的 prunsrv.exe,拷贝到 Service 文件夹中;
- 将 commons-daemon-1.2.0-bin-windows 文件夹下的 prunmgr.exe,拷贝到 Service 文件夹中,并重命名,我这里命名为 SpringForWinServiceDemo.exe。
四. 确定 JAR 包 Main-Class 值
- 使用压缩软件打开 JAR 文件夹下的 jar 包,进入这个META-INF文件夹;
- 使用记事本打开 MANIFEST.MF 文件;
- 记住 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包相关推荐
- Windows server2008部署SpringBoot的jar项目
Windows server2008部署SpringBoot的jar项目 1.服务器安装配置JDK(如果安装请忽略) 2.服务器部署 优质资源分享 1.服务器安装配置JDK(如果安装请忽略) JDK1 ...
- Windows系统的桌面部署Desktop Deployment(4)
Windows系统的桌面部署Desktop Deployment(4) Windows PE2.0的进一步探讨 一. Windows PE2.0 程序/语言包 在PE 2.0中提供了下面的程序/语言包 ...
- 【SpringBoot】32、SpringBoot项目Jar包如何瘦身部署
一.背景 SpringBoot 为我们快速开发提供了很好的架子,使得我们只需要少量配置就能开始我们的开发工作,但是当我们需要打包上传部署时,却是很神伤的一个问题,因为打出来的 Jar 包少则十几兆,多 ...
- Linux系统中后台运行java项目jar包指令
Linux系统中后台运行java项目jar包指令 windows环境下后台运行jar包程序: https://blog.csdn.net/qq_36763419/article/details/109 ...
- 解决springboot读取jar包中文件的问题
解决springboot读取jar包中文件的问题 参考文章: (1)解决springboot读取jar包中文件的问题 (2)https://www.cnblogs.com/songxiaotong/p ...
- Dockerfile文件创建centos:7,配置JDK8的环境变量,与运行springboot的jar包,的镜像
DockerFile文件创建centos:7 配置JDK8的环境变量 与运行springboot的jar包 准备文件 一:官网下载Linux的JDK包 https://www.oracle.com/j ...
- jar构建docker镜像_dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例...
dockerfile构建docker镜像详细说明,主要是springboot的jar包构建镜像样例 1.镜像构建命令:docker build 图解 启动命令:(注意最后面有一个点,不要忘记) doc ...
- [maven] springboot将jar包打包到指定目录
大家好,我是烤鸭: 今天分享一下springboot将jar包打包到指定目录下. 由于之前上线都是一个打包到一个jar,由于服务多了,1个包100多M,哪怕是小版本上线都需要重新上传jar包. 1.目 ...
- Springboot打jar包项目无法访问jsp问题解决
Springboot打jar包项目无法访问jsp问题解决 参考文章: (1)Springboot打jar包项目无法访问jsp问题解决 (2)https://www.cnblogs.com/vicF/p ...
最新文章
- Centos7单端口单配置文件多IP
- Eclipe 新建maven web 项目
- Python学习笔记:入门(2)
- 上海理工大学第二届“联想杯”全国程序设计邀请赛 Identical Day 思维 + 暴力
- 前端学习(2219):react之jsx小案例
- mysql group by 两列_MySQL GROUP BY两列
- 逻辑回归详解及Python实现
- 【整理】牛客网编程题-前端篇(简单难度)
- 4.PHP的运行方式
- 动易html在线编辑器 漏洞,动易网站漏洞总结
- 常用SQL_数据库查询总结1
- CASIA-B步态数据集的一些粗糙理解
- 听不够的三国,淡淡的乡愁
- 华为手机卡在升级界面_华为手机停在开机画面的解决方法【图文教程】
- 加载.npz文件时,出现错误:OSError: Failed to interpret file ‘xxx.npz‘ as a pickle
- 【定义】向量与向量组
- 编辑器 · Babel 中文文档
- Windows2012的VPN服务与测试
- UVM通信篇之五:TLM2通信
- apicloud (第五篇 bmap百度地图一键回到当前位置)