众所周知我们的jar
包一般都会Linux
上运行。
但总会有一些特殊情况,如网络环境、设备限制,我们开发的jar
不能部署到Linux
设备上,必须要部署到windows
上。
在Linux
上:
后台启动SpringBoot项目只需要一条命令
nohup sh run.sh(run.sh脚本包含了启动SpringBoot项目的命令)
在windows
上:
后台启动jar
包就比较尴尬,没有那么好用的命令来后台启动项目。有着以下的缺点:
war
包放到Tomcat
等web
容器中就浪费了SpringBoot
内嵌web
容器的优势。这里我新了解到了一些工具
winsw、nssm
,它们不仅可以改善以上缺点。 这里主要讲解winsw
使用方式,nssm
工具使用方式也很容易,可以自行百度。
winsw
是一个可以将任何应用程序注册成服务的软件。
下载地址:winsw
注意:在安装
winsw
前,window
要有.net framework4
,否则后面会出问题(现在电脑都有)
进入C:\Windows\Microsoft.NET\Framework
打开下载地址,下载2.12.0
版。
现在是2023.10.31,现在最新版为2.12.0,网页中3.0.0为预发布。
SpringBoot
项目通过执行mvn clean package
命令后得到可执行jar
包:
test-0.0.1.jar
(测试用,具体名称在pom.xml文件中定义)
将
sample-minimal.xml
和 WinSW.NET461.exe
改为
test-0.0.1.xml
和test-0.0.1.exe
,
文件名保持一致,方便后续操作
注意:(jar包、.exe文件、.xml文件均在同一目录下)
如:
创建一个test目录,将jar包、.exe文件、.xml文件均在放在test目录下
-test
--test-0.0.1.xml
--test-0.0.1.exe
--test-0.0.1.jar
<configuration>
<!-- ID of the service. It should be unique accross the Windows system-->
<!--服务ID:启动、关闭、删除服务时,都是通过ID来操作的-->
<id>test-0.0.1</id>
<!-- Display name of the service -->
<!--服务名称-->
<name>test-0.0.1 (powered by WinSW)</name>
<!-- Service description -->
<!--服务描述-->
<description>This service is a service for Statement Project(http://www.eachtravel.com/)</description>
<!-- Path to the executable, which should be started -->
<!--当前电脑配置了java环境变量,直接写成“java”就行;你也可以写成类似这样:D:\develop\jdk1.8\jre\bin\java-->
<executable>java</executable>
<!--启动参数-->
<arguments>-jar test-0.0.1.jar</arguments>
<!--<arguments>-jar "C:\Users\Administrator\Desktop\winsw\statement-0.0.1-SNAPSHOT.jar"</arguments>-->
<!-- 日志地址 -->
<logpath>%BASE%\log</logpath>
<!-- 日志模式 -->
<logmode>rotate</logmode>
</configuration>
到此就完成了配置,可以安装并启动服务了
为了方便以后不用老是打指令可以编写4个.bat
文件
进入到三个文件的目标目录,我这里就是进入test目录下,分别创建:
stop.bat
、start.bat
、服务删除.bat
、服务注册.bat
目录结构:
-test
--test-0.0.1.xml
--test-0.0.1.exe
--test-0.0.1.jar
--start.bat
--stop.bat
--服务删除.bat
--服务注册.bat
net start test-0.0.1
net stop test-0.0.1
sc delete test-0.0.1
test-0.0.1.exe install
服务注册.bat
;start.bat
来启动服务。当然,也可以通过在cmd命令行那里输入:services.msc命令直接进入服务界面,通过服务ID找到服务,然后手动启动;stop.bat
来停止服务;服务删除.bat
来删除服务。我正在参与2023腾讯技术创作特训营第三期有奖征文,组队打卡瓜分大奖!
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。