java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置在Tomcat下面运行。
关于springboot项目部署相对于之前简化了一些步骤,只需要在服务器中安装好jdk环境,然后执行java -jar xxx.jar就可以把项目跑起来,如下所示。
我们通过传统--->改进版--->改进版plus--->最终版演变方式来一步步探讨一下。
1、方式一(传统版)
(1)假设这是window服务器,D盘中有一个名为demo-0.0.1-SNAPSHOT.jar项目
(2)打开cmd,运行项目。
端口:9527
/:去项目名
(3)实际测试项目(demo-0.0.1-SNAPSHOT.jar)中的一个接口
(4)测试访问
2、改进版
以上方式运行项目还需要手动进入cmd输入命令,相对来说比较麻烦。
下面我们可以通过一个bat脚本来实现这个功能。
(1)脚本内容,比较简单。
(2)执行cmd脚本
(3)测试访问
3、 改进版plus
关于以上的两种方式不能满足开机自启动需求。
假设服务器宕机,重启启动服务还需要人工操作。
所以下面我们利用windows启动菜单添加快捷方式来完成开机自启的需求。 (1)win+R打开运行窗口,输入shell:startup
(2)将步骤2的脚本start.cmd新建一个快捷方式,然后将快捷方式拷贝到启动项文件中。
(3)重启电脑进行测试,自行操作。
4、 最终版
关于以上的3种方式都有一个通病:
一直显示着一个CMD窗口,而且这个窗口不能关,关了程序就停了。
继而引出了我们今天的主角:
可以将Windows上的任何一个程序注册为服务的工具--winsw
关于winsw官方发言:
WinSW is an executable binary, which can be used to wrap and manage a custom process as a Windows service.
WinSW是一个可执行的二进制文件,可用于将自定义进程包装和管理为Windows服务。
以下两个版本:
WinSW.NET4.exe:
支持.netframework4.0的版本,如果没有4.0,请先安装.net4.0。
如下图:
这里以WinSW.NET2.exe为例。
下载到桌面WinSW.NET2.exe
(2)将WinSW.NET2.exe改名成启动服务名字(便于理解、使用)。
如:将WinSW.NET2.exe改成springbootDemo.exe (3)新建一个WinSW的xml配置文件 注意: XML文件要和程序名同名,所以这里名为springbootDemo.xml
(4)将我们的springboot项目(demo-0.0.1-SNAPSHOT.jar)和springbootDemo.xml文件、springbootDemo.exe工具放置到同一个目录中。
(5)编写springbootDemo.xml配置文件,如下所示:
springbootDemo
springbootDemo
This is springbootDemo service.
java
-jar "D:\springboot-service\demo-0.0.1-SNAPSHOT.jar"
Automatic
%BASE%\log
rotate
下面是配置文件用到的标签的简单解释
springbootDemo
springbootDemo
This is springbootDemo service.
java
-jar "D:\springboot-service\demo-0.0.1-SNAPSHOT.jar"
Automatic
%BASE%\log
rotate
(6)打开cmd窗口,注册服务
cd springboot-service
springbootDemo.exe install
安装成功 (7)Win+R输入services.msc
(8)可以看到我们刚刚的springboot项目已经被注册成一个window服务了
在这里我们可以对我们的springbootDemo项目进行启动、停止、手动开启、自动开启等等管理。
测试完成。 补充:
一些常用的命令
winsw install:安装服务
winsw uninstall:卸载服务
winsw start:开启服务
winsw stop:停止服务
winsw restart:重新启动服务
winsw status:检查服务的当前状态
java注册系统服务_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...相关推荐
- linux java jar包项目如何安装在win系统 设置开机自启等配置 - jar包配置不用改
大家都知道 linux 是没有c盘或者d盘 我们部署linux项目的时候 , java 上传的文件都是在当前项目的目录下, 我们需要把项目部署到win系统的时候 在不改其jar包的配置下,在指定盘 ...
- 使用VS2017将我的c++项目打包成安装程序,并设置开机自启,卸载,图标等
大体上打包分为两步 目录 一.将编译后的exe可执行文件及其各种依赖dll.lib.图标.配置文件等先打包放到一个目录中 (1)dumpbin指令查看可执行文件的dll依赖包 (2)windeploy ...
- bat启动脚本 springboot_奇葩需求:springboot项目注册为windows系统服务并设置开机自启...
关于springboot项目的部署与SSM(框架)部署war包到Tomcat下有所不同,比较明显的是springboot打包为jar包,运行则是执行通过java -jar xxx.jar,不再需要放置 ...
- 奇葩需求:springboot项目注册为windows系统服务并设置开机自启
程序员的成长之路 互联网/程序员/技术/资料共享 关注 阅读本文大概需要 4 分钟. 作者:双主双机热备 来源:http://suo.im/5yPoPJ 关于springboot项目的部署与SSM(框 ...
- java 定时任务怎么关闭_浅谈springboot项目中定时任务如何优雅退出
在一个springboot项目中需要跑定时任务处理批数据时,突然有个Kill命令或者一个Ctrl+C的命令,此时我们需要当批数据处理完毕后才允许定时任务关闭,也就是当定时任务结束时才允许Kill命令生 ...
- Java毕业设计:养老院管理系统(Springboot项目)
[辰兮要努力]:hello你好我是辰兮,很高兴你能来阅读,昵称是希望自己能不断精进,向着优秀程序员前行! 博客来源于项目以及编程中遇到的问题总结,偶尔会有读书分享,我会陆续更新Java前端.后台.数据 ...
- jpa遇到mysql表名大写怎么办_解决(springboot项目)mysql表名大写,造成jpa Table doesn't exist问题...
一般实体类中的属性, 如contentType会被hibernate默认映射为content_type,如果数据库中的字段是contenttype则会不匹配 这个问题有2种解决方法: 我的报错是: j ...
- maven 不编译jasper文件_第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp...
SpringBoot简介及国内关注度 SpringBoot简介: 它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC +Spr ...
- jsp拿不到回显数据_第一个SpringBoot项目、核心配置文件properties(yml、yaml)、集成jsp...
SpringBoot简介及国内关注度 SpringBoot简介: 它用来简化 Spring 应用程序的创建和开发过程,也可以说 Spring Boot 能简化我们之前采用 SpringMVC +Spr ...
最新文章
- 华为云垃圾分类AI大赛三强出炉,ModelArts2.0让行业按下AI开发“加速键”
- 「Vue」vue生命周期
- 天津政府应急系统之GIS一张图(arcgis api for flex)讲解(四)地图导航控件模块...
- mysql索引的使用和优化
- wxWidgets:wxMessageDialog类用法
- spring整合mongodb集群
- rostcm6情感分析案例分析_电商评论情感分析
- 取出字符串中的数字部分
- gradle对java插件的扩展_Gradle之java插件入门
- 无需软件实现QQ空间秒赞以及赞空间全部说说
- CAS单点登录原理及实现
- android切图规范,APP切图详细规范终极指南
- 【云原生监控系列第一篇】一文详解Prometheus普罗米修斯监控系统(山前前后各有风景,有风无风都很自由)
- cms32L051 掉电深度睡眠的唤醒
- spring boot社区疫苗接种管理系统毕业设计源码281442
- JavaScript:Promise进阶知识
- overflow and underflow
- 锂矿降龙十八掌之时乘六龙:盛新锂能
- 学计算机专业表情包,大学专业恶搞表情包,你中枪了吗
- Python-使用海龟绘图制作动态时钟
热门文章
- vscode remote ssh_win10 下安装Vscode
- 面板大小调整_3天学会premiere完全自学教程-更改剪辑大小
- java坦克大战总体功能设计_java课程设计——坦克大战
- 访问不了html的内容,index.html文件内容与实际访问结果不同
- 基于JAVA+SpringMVC+Mybatis+MYSQL的现代史网站设计
- linux运行run.tar.gz,linux .run 文件的制作和安装
- JAVA基础系列:反射
- VSCode代码格式化自动换行问题
- sqlilabs 5
- 组合数学及其应用——polya计数