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. 肠道微生物研究进展 | Microbiology | Human Gut Microbiome | human gut microbiota

    之前我有过一篇16s基本概念和数据分析的文章.16S 基础知识.分析工具和分析流程详解 可以分成两部分,生物层面和技术层面. 生物层面: 1. 肠道微生物里面包含了哪些微生物?显然包含了所有层面的微生 ...

  2. C++模板编程中只特化模板类的一个成员函数(花样特化一个成员函数)

    转自:https://www.cnblogs.com/zhoug2020/p/6581477.html 模板编程中如果要特化或偏特化(局部特化)一个类模板,需要特化该类模板的所有成员函数.类模板中大多 ...

  3. AndoridSQLite数据库开发基础教程(5)

    AndoridSQLite数据库开发基础教程(5) 创建SQLite数据库 使用SQLiteManager创建数据库的操作步骤如下: (1)双击SQLiteManager工具,弹出SQliteMana ...

  4. Java8中的日期时间类

    测试类: import java.time.*; import java.time.format.DateTimeFormatter; public class App { public static ...

  5. vue 日历组件

    Github 上很多点击弹出日历选择某个时间的组件,却没有找到单纯展示日历并且能点击获取时间的组件 npm i vue-calendar-component --save cnpm i vue-cal ...

  6. ROS Software update

    http://packages.ros.org/ros/ubuntu

  7. 【ROC+AUC】

    http://m.elecfans.com/article/736801.html https://blog.csdn.net/xyz1584172808/article/details/818392 ...

  8. Swift4.0复习协议

    1.协议的定义: /// 定义一个协议MyProt protocol MyProt {   /// 声明了一个实例方法foo, /// 其类型为:() -> Void func foo()   ...

  9. Win10安装Golang

    首先去这个网站下载Golang的安装包:https://studygolang.com/dl 因为我的系统是Win10专业版64位,所以我选择了对应的Windows的安装包进行下载: 下载好安装包之后 ...

  10. ubuntu 18.04下载mysql8.0.13源码并编译安装(暂时没有成功)

    执行如下命令下载解压MySQL8的源码文件压缩包到本地文件: wget https://cdn.mysql.com//Downloads/MySQL-8.0/mysql-boost-8.0.13.ta ...