需求:把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系统)
下载下来后是个压缩包,我们只用里面的javaservice.exe文件就可以
二,配置环境变量
1:基本的jdk环境变量就不说啦。(我用的是jdk8)
2:配置JAR_HOME,创建一个文件夹,例如:JAR_HOME/bin,作为jar包路径,把jar包放入bin目录下。(其实就是陪一下路径方便我们再bat文件中引用,也可以不配这个)
3:把Javaservice.exe文件/JAR_HOME/bin目录下,和jar包一个路径下。
4:在bin目录下新建一个logs文件夹,用于存放日志。
三,命令
1:打开cmd命令窗口(管理员身份),进入bin的根目录,命令:cd %JAR_HOME%(jar包放到哪个盘下,先进入哪个盘下再执行)
执行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"
-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 "%JAR_HOME%/bin"
-auto –overwrite
上面的命令执行时不要换行,每一条之间有个空格就行
第一句的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
另一种简单的方式
1、首先要有一个jar包
2、新建两个txt文件,将后缀分别改成bat和vbs文件
3、编写bat文件来启动jar包
@echo "启动jar包"
java -jar E:\bate\bate.jar
exit
4、编写vbs文件
createobject("wscript.shell").run"E:\bate\bate.bat"
如果需要隐藏窗口的话按照下面加上逗号0即可
createobject("wscript.shell").run"E:\bate\bate.bat",0
5、然后把vbs文件创建一个快捷方式移动到
C:\ProgramData\Microsoft\Windows\Start Menu\Programs\StartUp
放到该目录下在重启的时候就会自动启动jar包了