1、下载winsw

下载地址:https://github.com/kohsuke/winsw/releases

我这里下载的是2.3.0版。

下载sample-minimal.xml和WinSW.NET4.exe两个文件。

2、将三个文件放在同一个文件夹中

WinSW.NET4.exe

sample-minimal.xml

springboot jar包

3、修改文件名字

需要将winsw执行程序跟xml改成同样的名字,推荐使用项目名+Service的命名方式,比如:

WinSW.NET4.exe修改为rexel-middleware-0.0.1.exe

sample-minmal.xml修改为rexel-middleware-0.0.1.xml

4、编辑xml文件

配置内容

<configuration>
<!--安装成Windows服务后的服务名-->
<id>rexel-middleware</id>
<!--显示的服务名称-->
<name>rexel-middleware</name>
<!--对服务的描述-->
<description>rexel-middleware for hzzg project</description>
<!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
<executable>java</executable>
<!---jar后面的是项目名,可以配置内存限制如-Xmx256m代表堆内存最大值为256MB -->
<arguments>-jar rexel-middleware-0.0.1.jar</arguments>
<!--日志模式-->
<logmode>rotate</logmode>
</configuration>

5、执行命令安装服务

打开系统命令行窗口,进入到rexel-middleware-0.0.1.exe所在文件夹,

然后执行命令安装服务命令:rexel-middleware-0.0.1.exe install。

执行发现报错如下:

错误日志:

D:\MyWork\22_Github\rexel-cn\rexel-jarvis\rexel-middleware\install>rexel-middleware-0.0.1.exe install
2019-12-02 10:25:24,938 INFO - Installing the service with id 'myapp'
2019-12-02 10:25:24,964 FATAL - WMI Operation failure: AccessDenied
WMI.WmiException: AccessDenied
在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
在 winsw.WrapperService.Main(String[] args)
WMI.WmiException: AccessDenied
在 WMI.WmiRoot.BaseHandler.CheckError(ManagementBaseObject result)
在 WMI.WmiRoot.ClassHandler.Invoke(Object proxy, MethodInfo method, Object[] args)
在 winsw.WrapperService.Run(String[] _args, ServiceDescriptor descriptor)
在 winsw.WrapperService.Main(String[] args)

解决方法:

使用管理员权限重新打开cmd窗口,重新执行rexel-middleware-0.0.1.exe install

6、启动服务

命令提示符界面输入命令启动服务。

命令:net start rexel-middleware

7、查看是否启动成功

打开系统服务功能:运行——输入services.msc

即可看见自己命名的服务rexel-middleware。

我的java程序是一个从外部接口定时拉取数据,并写入到mysql的程序,

可以看到已经在开始写入数据了,证明程序运行成功。

8、重启测试

重启电脑后该服务会自动启动,执行第6步(net start rexel-middleware)可检查是否成功。

9、删除服务

分为两步:

步骤1:停止服务

命令提示符界面输入命令停止运行服务:net stop rexel-middleware

步骤2:删除服务

命令提示符界面输入命令可删除服务:rexel-middleware-0.0.1.exe uninstall

10、修改为批处理文件

上面所有的命令都可以写在批处理文件中,部署的时候就可以实现一键部署了。

例如start.bat内容如下:

rexel-middleware-0.0.1.exe install
net start rexel-middleware

例如stop.bat内容如下:

net stop rexel-middleware
rexel-middleware-0.0.1.exe uninstall

--END--

使用winsw将springboot打包的jar注册系统本地服务的更多相关文章

  1. springboot打包成jar包后找不到xml,找不到主类的解决方法

    springboot打包成jar包后找不到xml,找不到主类的解决方法 请首先保证你的项目能正常运行(即不打包的时候运行无误),我们在打包时经常遇到如下问题: springboot打包成jar包后找不 ...

  2. 在Windows下将Redis注册为本地服务

    当前redis版本:3.2.100 通常情况下我们可以通过 redis-server.exe 和配置文件启动redis服务 : redis-server.exe redis.windows.conf ...

  3. 【spring boot】idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到(转)

    转自:https://www.cnblogs.com/sxdcgaq8080/p/7727249.html   接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p ...

  4. 关于springboot 打包问题 jar包和 war包

    起因:项目开发完成   需要打包部署了  发现自己不会打包 那么开始网上学习打包? 那么怎么来打包那? 我们以前没有采用springboot 时候我们都是直接将项目打成war包形式  然后放到tomc ...

  5. 【spring boot】6.idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到

    接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于 ...

  6. idea下springboot打包成jar包和war包,并且可以在外部tomcat下运行访问到

    接着上一章走呗:http://www.cnblogs.com/sxdcgaq8080/p/7712874.html 然后声明一点,下面打包的过程中,scope一直都是使用默认的范围 <!--用于 ...

  7. springboot打包的jar项目,不需要安装jdk环境启动

    因为服务器上是JDK7,而springboot至少用JDK8才行,但是又因为是很老的项目,不是很清楚能不能换JDK8,有风险,因此选择以前项目用JDK7,而新的springboot用JDK8.步骤一: ...

  8. idea将springboot打包成jar或者war

    1.首先在pom.xml中添加下面配置 <groupId>com.melo</groupId> <artifactId>focus</artifactId&g ...

  9. springboot打包成jar文件无法正常运行,解决办法已经找到

    1.用intellij idea 创建了一个springboot的项目,前期都运行的好好的,在ide中可以正常运行,但是打包成Jar运行却一直报错. 2.经过不懈探索,终于找到解决办法 3.首先,找到 ...

随机推荐

  1. Eclipse创建的Java Web项目,如何启用外置浏览器访问jsp或者html页面

    当我们用Eclipse创建了一个Java Web项目,想访问一个jsp或者html页面时,通常会在目标页面(以jsp为例)上点击鼠标右键,选择[Run As]——>[Run on Server] ...

  2. Leetcode: Campus Bikes II

    On a campus represented as a 2D grid, there are N workers and M bikes, with N <= M. Each worker a ...

  3. 001-guava概述

    一.概述 Guava工程包含了若干被Google的 Java项目广泛依赖 的核心库,例如:集合 [collections] .缓存 [caching] .原生类型支持 [primitives supp ...

  4. pyenv、virtualenv、virtualenvwrapper三种python多版本介绍

    今天有把此前接触过的三种python实现多版本环境用到的软件pyenv.virtualenv.virtualenvwrapper,了解了一番,现做如下总结: 一.pyenv: 是针对python多版本 ...

  5. ABAP DEMO ALVtree显示BOM层级

    展示效果: *&---------------------------------------------------------------------* *& Report YCX ...

  6. 基于jsplumb插件制作可拖拽、保存流程图、重绘保存后的流程图总结

    1.重点参考博文 https://blog.csdn.net/j_bean/article/details/78092647 2.关键点总结 1)实现可视区域图形画满后,拖动整个画布的效果 a.最好不 ...

  7. 基于TreeSoft实现mysql、oracle、sql server的数据同步

    一.为了解决数据同步汇聚,数据分发,数据转换,数据维护需求,TreeSoft推出了数据同步,数据处理等丰富功能 . TreeSoft作为中间传输载体负责连接各种数据源,为各种异构数据库之间架起沟通的桥 ...

  8. logstash kafka output 日志处理

    今天在用logstash解析日志并传送给kafka的时候,发现kafka能收到数据但数据内容已经丢失,具体如下: 在logstash output中增加输出样式之后,问题解决kafka再次接受到的内容 ...

  9. 最新 医渡云java校招面经 (含整理过的面试题大全)

    从6月到10月,经过4个月努力和坚持,自己有幸拿到了网易雷火.京东.去哪儿.医渡云等10家互联网公司的校招Offer,因为某些自身原因最终选择了医渡云.6.7月主要是做系统复习.项目复盘.LeetCo ...

  10. react-native 上拉加载

    import React, {Component} from 'react'; import {View, ScrollView, Text, Dimensions, Image} from 'rea ...