springboot项目打成jar包做成Windows服务启动

2021-12-18 00:00:00 启动 做成 打成

《springboot项目打成jar包做成Windows服务启动》
需求:把springboot项目打成jar包放到windows服务中启动,做一个jar包部署到现场服务器,做一个bat批处理文件,一键启动,如果服务器重启还需要手动去启动bat文件,而且启动后小黑框一直在桌面上,如果不小心关啦,还需要重新启动。所以要把jar包做成windows服务,服务器重启后就会自动启动这个服务,小黑框也会小时,把服务放到后台运行。

一,下载JavaService.exe
JavaService是一款能把Java应用程序做成NT服务的实用工具,一般用于启动应用服务器。
JavaService下载地址:
http://download.forge.ow2.org/javaservice/
我使用的是64位的,根据需要选用32位或64位,上面的是32位(我是win10系统)
《springboot项目打成jar包做成Windows服务启动》
下载下来后是个压缩包,我们只用里面的javaservice.exe文件就可以
二,配置环境变量
1:基本的jdk环境变量就不说啦。(我用的是jdk8)
2:配置JAR_HOME,创建一个文件夹,例如:JAR_HOME/bin,作为jar包路径,把jar包放入bin目录下。(其实就是陪一下路径方便我们再bat文件中引用,也可以不配这个)《springboot项目打成jar包做成Windows服务启动》
3:把Javaservice.exe文件/JAR_HOME/bin目录下,和jar包一个路径下。
4:在bin目录下新建一个logs文件夹,用于存放日志。
《springboot项目打成jar包做成Windows服务启动》
三,命令
1:打开cmd命令窗口(管理员身份),进入bin的根目录,命令:cd %JAR_HOME%(jar包放到哪个盘下,先进入哪个盘下再执行)
《springboot项目打成jar包做成Windows服务启动》
执行JavaService服务命令

JavaService.exe -install remoteControl "%JAVA_HOME%/jre/bin/server/jvm.dll"
-Djava.class.path="%JAR_HOME%/bin/dowin-remoteControl.jar;%JAVA_HOME%/lib/tools.jar"
-Xms64MXmx256M
-start org.springframework.boot.loader.JarLauncher
-stop org.springframework.boot.loader.JarLauncher
-method systemExit
-out "%JAR_HOME%/logs/out.log"
-err "%JAR_HOME%/logs/err.log"
-current "%JAR_HOME%/bin"
-auto –overwrite

上面的命令执行时不要换行,每一条之间有个空格就行
《springboot项目打成jar包做成Windows服务启动》
第一句的remoteControl是服务名(自己起的名字)
-Xms64M –Xmx256M Java虚拟机支持的内存最小值和最大值
执行完后出现 “The remoteControl automatic service was successfully installed”的提示说明服务创建成功。
2:下面是开启,关闭,删除服务的命令

net start remoteControl  开启服务
net stop remoteControl   关闭服务
sc delete remoteControl  删除服务

3:下面是把这些创建服务,开启和关闭服务的命令写成bat批处理文件,操作更方便,但是要用管理员身份运行,把这些文件和jar包,JavaService.exe文件放到同一个目录下面。

config.ini

serviceName=remoteControl
jarName=dowin-remoteControl

serviceName 是要生成的服务名字
jarName 是jar包的名字

install.bat

@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
set path=%cd%
md "%path%/logs"
echo %serviceName%
echo %jarName%
echo %JAVA_HOME%
echo %path%
JavaService.exe -install %serviceName% "%JAVA_HOME%/jre/bin/server/jvm.dll" -Djava.class.path="%path%/%jarName%.jar;%JAVA_HOME%/lib/tools.jar" -Xms64M Xmx256M -start org.springframework.boot.loader.JarLauncher -stop org.springframework.boot.loader.JarLauncher -method systemExit -out "%JAR_HOME%/logs/out.log" -err "%JAR_HOME%/logs/err.log" -current "%path%" -auto -overwrite
pause

startup.bat

@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
net start %serviceName%
pause

shutdown.bat

@echo off
setlocal enabledelayedexpansion
cd /d %~dp0
for /f "delims=" %%i in ('type "config.ini"^| find /i "="') do set %%i
net stop %serviceName%
pause
    原文作者:庆登登登
    原文地址: https://blog.csdn.net/weixin_44467567/article/details/103700170
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。

相关文章