jar包安装成Windows服务

一、前言

很多年前写过一篇《使用java service wrapper把windows flume做成服务》的文章,也是把jar包安装成windows服务,今天介绍另外一种更简便的方案。

二、正片

这次使用的工具是 winsw,一个Windows服务包装器。下面看详细介绍

首先从github中下载这个工具,下载地址如下 https://github.com/winsw/winsw/releases

有很多个版本,选择适合自己系统的版本进行下载(示例是使用64位的安装包),以及xml配置(二选一,本例以sample-minimal.xml为例)

把这两个文件放到同一个目录,然后把打包好的jar包也放进去,为了好区分,可以把exe和xml文件改成以jar包一样的名字。如:

然后修改test-service.xml配置,只需要修改四个地方,如图

修改后的内容,中文可能会有异常,建议使用英文注释

xml 复制代码
<service>
	<!--安装成Windows服务后的服务名-->
    <id>test-service</id>
    <!--显示的服务名称-->
    <name>test-service</name>
    <!--对服务的描述-->
    <description>test-service</description>
    <!--这里写java的路径,如何配置了环境变量直接写"java"就行-->
    <executable>java</executable>
    <!--jar包的执行参数 -jar后面的是项目名-->
    <arguments>-Dfile.encoding=utf-8 -Xmx256m -jar test-service-1.0.jar</arguments>
    <!--日志模式-->
    <logmode>rotate</logmode>
</service>

使用终端管理员执行服务安装命令

shell 复制代码
test-service.exe install

显示下面结果就表示成功

执行成功后,打开服务可查看到刚才安装的服务

右键启动,或者通过命令启动。其他命令

命令 描述
install 安装服务
uninstall 卸载服务
start 启动服务
stop 停止服务
restart 重启服务
status 查看服务状态
refresh 刷新服务属性,无需重新安装
customize 自定义包装器可执行文件
dev 实验的命令

剩下的自己去尝试吧。

相关推荐
张国荣家的弟弟1 小时前
【Yonghong 企业日常问题 06】上传的文件不在白名单,修改allow.jar.digest属性添加允许上传的文件SH256值?
java·jar·bi
music0ant2 天前
Idean 处理一个项目引用另外一个项目jar 但jar版本低的问题
java·pycharm·jar
ℳ₯㎕ddzོꦿ࿐2 天前
在Linux上将 `.sh` 脚本、`.jar` 包或其他脚本文件添加到开机自启动
linux·运维·jar
等一场春雨2 天前
linux 根据名称 杀死linux 上某个jar进程或其他进程
linux·pycharm·jar
Seven_cm2 天前
JDK21执行java -jar xxx.jar 文件时 “An unexpected error occurred” 问题处理
java·开发语言·jar
水w3 天前
springBoot Maven 剔除无用的jar引用
开发语言·spring boot·后端·maven·jar
等一场春雨3 天前
Java 优化springboot jar 内存 年轻代和老年代的比例 减少垃圾清理耗时 如调整 -XX:NewRatio
java·spring boot·jar
蜜獾云3 天前
使用xjar 对Spring-Boot JAR 包加密运行
java·jar·xjar·jar加密
无奈ieq6 天前
Maven 打包(system jar 和微服务父子项目)
微服务·maven·jar
xixingzhe26 天前
使用Maven打包javaagent.jar
java·jar