在windows环境下使用winsw将jar包注册为服务(实现开机自启和配置日志输出模式)

news2025/2/2 4:50:48

前言

Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭,其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序,目前主流的方法是采用winsw,简单容易配置

1.下载winsw工具

https://github.com/winsw/winsw/releases

在这里插入图片描述

2.文件配置

修改WinSW和sample-minimal.xml名称

将下载的文件与jar文件放置在一起,两个文件名修改为服务名(服务名自定义)
在这里插入图片描述

编辑xml文件

注意不要出现中文, arguments和logpath标签内的jar文件地址要改为自己的目录

<service>
  <!-- ID of the service. It should be unique across the Windows system-->
  <id>testapp</id>
  <!-- Display name of the service -->
  <name>test service</name>
  <!-- Service description -->
  <description>This service is a service created from a minimal configuration</description>
   
  <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     
  <executable>java</executable>
 
  <arguments>-jar "H:\testautostart\cxstar-api-rest-1.0.0.jar"</arguments>
 
  <startmode>Automatic</startmode>

  <logpath>H:\testautostart\logs</logpath>
 
  <logmode>rotate</logmode>
	
</service>

logmode:日志输出模式,默认为append,官方文档

参数解析

标签名作用
id服务ID,在windows系统中必须唯一的系统标识
name服务显示名称,不能使用中文,仅限英文、数字、横线等
description服务描述,描述服务的作用
env设置环境变量
executable启动可执行文件的路径,如果配置了Java环境变量,可以直接使用java替代。否则使用全路径(这里容易坑)
arguments传递给可执行文件的参数
startmode指定Windows服务的启动模式,它可以是下列值之一:开机、系统、自动或手动, 默认值是“Automatic”
logpath配置日志路径
logmode日志输出模式,默认为append

logmode:

  1. append (追加模式)其特点是将日志文件全部输出在一个文件中,这个文件可能会越来越大
  2. rotate(旋转模式,推荐)当日志文件大小达到10兆(默认值),winsw会将日志重新输出到另外一份日志文件,默认最多保留8个
  3. reset(重置模式)每次重启服务都会重置日志文件
  4. none(忽略模式)几乎不会生成日志文件

3.注册服务

当前目录输入cmd,进入命令行模式,执行服务注册命令

testapp.exe install

在这里插入图片描述
服务中已经存在该服务
在这里插入图片描述
双击设置为自动即可
在这里插入图片描述

卸载服务:

testapp.exe uninstall

在这里插入图片描述
其他服务命令:

testapp.exe start:启动服务
testapp.exe stop:停⽌服务
testapp.exe restart:重启服务
testapp.exe status:输出当前服务的状态

关于在windows server 2008启动失败的问题

服务启动成功后自动关闭,日志文件也没有生成。执行java -jar的命令,服务可以正常启动。在控制面板—管理工具—事件查看器—window日志—应用程序—找出对应服务的日志。如下:

Service cannot be started. 
System.ComponentModel.Win32Exception: The system cannot find the file specified 
at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 
at winsw.WrapperService.StartProcess(Process processToStart, String arguments, String executable) 
at winsw.WrapperService.OnStart(String[] _) 
at System.ServiceProcess.ServiceBase.ServiceQueuedMainCallback(Object state)

提示很清楚,系统没有找到指定文件,而在winsw的xml文件中就已经配置了executable,而且环境变量配置正确。那为什么还提示文件没有找到?于是将java改为了全路径,重新注册服务并成功启动服务

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/589014.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

新手自媒体找素材必备的5个素材网站。

自媒体需要用到视频、音频、图片、字体等各类素材&#xff0c;对于新手朋友来说&#xff0c;网上搜素材怕侵权&#xff0c;商用素材又不知道哪里找。作为一个老手的我收藏了各类优秀的免费素材网站&#xff0c;下面分享几个&#xff0c;对你一定有帮助&#xff0c;记得收藏起来…

安科瑞预付费管理系统对于学生公寓的设计

安科瑞 徐浩竣 江苏安科瑞电器制造有限公司 zx acrelxhj 摘要&#xff1a;论文设计了适用于学生公寓的自助式预付费控电控水管理系统&#xff0c;采用多种智能功能&#xff0c;可以监测和显示漏电现象&#xff0c;通过短路、跳线、零线接地等方式防范和记录用户的偷电行为&a…

zookeeper机制及消息队列kafka

目录 一、zookeeper1、zookeeper简介2、zookeeper特点3、zookeeper工作模式及机制4、zookeeper应用场景及选举机制5、zookeeper集群部署 二、消息队列kafka1、为什么要有消息队列2、使用消息队列的好处3、kafka简介4、kafka特点5、kafka系统架构名词介绍6、Kafka架构及流程7、k…

Docker理论基础

初识Docker 1.什么是Docker 微服务虽然具备各种各样的优势&#xff0c;但服务的拆分通用给部署带来了很大的麻烦。 分布式系统中&#xff0c;依赖的组件非常多&#xff0c;不同组件之间部署时往往会产生一些冲突。 在数百上千台服务中重复部署&#xff0c;环境不一定一致&…

Docker容器核心技术:Linux命名空间Namespaces、控制组cgroups、联合文件系统UnionFS

1.容器的本质——进程 Docker 使用 Google 公司推出的 Go 语言 进行开发实现&#xff0c;基于 Linux 内核的 cgroup&#xff0c;namespace&#xff0c;以及 OverlayFS 类的 Union FS 等技术&#xff0c;对进程进行封装隔离&#xff0c;属于 操作系统层面的虚拟化技术。由于隔离…

react 接入企业微信登录组件

需求简述 把某web登录页替换成使用企业微信的扫码登录。 具体实现 自建应用&#xff1a;登录企微后台/应用管理&#xff0c;滑到最底部&#xff0c;创建应用并填写应用相关信息&#xff1a; 2. 创建成功之后&#xff0c;进入应用详情&#xff0c;配置可信域名以及授权登录&a…

k8s中iptables与ipvs详解——2023.05

文章目录 背景介绍一、Iptables模式二、IPVS模式&#xff08;NAT模式&#xff09;三、内部原理理解Iptablesipvs区别 补充&#xff1a;CoreDNS 背景介绍 从k8s的1.8版本开始&#xff0c;kube-proxy引入了IPVS模式&#xff0c;IPVS模式与iptables同样基于Netfilter&#xff0c;…

mysql ACID实现基本原理(面试题)

mysql ACID实现基本原理&#xff08;面试题&#xff09; 原子性一致性隔离性持久性 ACID&#xff0c;是指数据库管理系统&#xff08;DBMS&#xff09;在写入或更新资料的过程中&#xff0c;为保证事务&#xff08;transaction&#xff09;是正确可靠的&#xff0c;所必须具备的…

中介效应分析全流程汇总

一、中介效应说明 中介效应主要研究自变量对因变量影响的过程中&#xff0c;自变量是否通过中介变量再对因变量产生影响&#xff0c;那什么情况表明中介效应存在呢&#xff1f;如果自变量对因变量影响过程中&#xff0c;中介变量在模型中有着桥梁般的作用&#xff0c;那说明中…

Service事务优化(方法能否被事务控制?)

1.updateFile方法是否应该开启事务&#xff1f; 目前如果在updateFile方法上添加Transactional&#xff0c;当调用updateFile方法前会开启数据库事务&#xff0c;如果上传文件过程时间较长&#xff08;例如用户在上传超大视频文件&#xff09;&#xff0c;那么数据库的食物持续…

IP-Guard客户端上插入加密盘时提示格式化,能否禁止该弹窗?

客户端上插入加密盘时提示格式化,能否禁止该弹窗? 1、当Shell Hardware Detection服务启动时,操作系统检测硬件的速度要快于客户端,而此时操作系统是不能识别加密后的移动盘的,因此认为加密盘异常,提示需要格式化,策略-客户端配置,选择禁止windows7播放功能。配置后不…

AI绘画出《三体》里的叶文杰

文 / 高扬&#xff08;微信公众号&#xff1a;量子论&#xff09; 春节的时候&#xff0c;我看完了《三体》第一部。现在《三体》动画片、《三体》国内版电视剧相继上线&#xff0c;毁誉参半。 一千个读者心里有一千个哈姆雷特&#xff0c;正好谷雨最近在研究MidJourney。我让她…

C++进阶 —— multimap

目录 一&#xff0c;multimap介绍 二&#xff0c;multimap使用 一&#xff0c;multimap介绍 multimap是关联式容器&#xff0c;按照特定顺序存储键值对<key、value>&#xff0c;其中多个键值对之间的key可以重复&#xff1b;通常按照key排序和唯一标识元素&#xff0c;…

阿里一面凉凉,幸获内推华为技术四面,offer到手

上个月&#xff0c;哥们从某小厂离职&#xff0c;转投阿里云&#xff0c;简历优秀&#xff0c;很顺利地拿到了面试通知&#xff0c;但之后的进展却让哥们怀疑人生了&#xff0c;或者说让哥们懵逼的是&#xff0c;面试阿里云居然第一面就被吊打&#xff1f;让哥们开始怀疑自己&a…

大型复杂地质模型如何实现可视化?知名公司MineRP给你答案!

行业&#xff1a;采矿业 挑战&#xff1a;采矿业客户在寻找未开发的矿体和有效挖掘方面面临着越来越多的挑战&#xff1b;不同的采矿系统之间缺乏整合&#xff0c;呈现出零散的矿山运营视图&#xff1b;地质模型、采矿计划、时间表和点云以及其他需要可视化的矿山技术数据集可…

算法(63)-二叉树的递归-搜索二叉树-满二叉树-平衡二叉树-

目录 1.二叉树 2.搜索二叉树&#xff1a; 3.满二叉树&#xff1a; 4.平衡二叉树 1.二叉树 先、中、后序遍历 先序&#xff08;中、左、右&#xff09;&#xff1a;1&#xff0c;2&#xff0c;4&#xff0c;5&#xff0c;3&#xff0c;6&#xff0c;7 中序&#xff08;…

两个好用到爆的Python模块,建议收藏~

在日常开发工作中&#xff0c;经常会遇到这样的一个问题&#xff1a;要对数据中的某个字段进行匹配&#xff0c;但这个字段有可能会有微小的差异。比如同样是招聘岗位的数据&#xff0c;里面省份一栏有的写“广西”&#xff0c;有的写“广西壮族自治区”&#xff0c;甚至还有写…

Axure教程——直方图(中继器)

本文将教大家如何用AXURE用中继器制作直方图 一、效果介绍 如图&#xff1a; 预览地址&#xff1a;https://yjkepz.axshare.com 下载地址&#xff1a;https://download.csdn.net/download/weixin_43516258/87842701 二、制作方法 &#xff08;1&#xff09;制作刻度表 设计5个刻…

golang链接mysql

复习一下 对象 package mainimport("fmt" )type User struct{uid intname string }func main(){var user Userfmt.Println(user) }协程 package mainimport("fmt" )func test(){fmt.Println("test func") }func main(){go test()fmt.Println(…

Socket安全(一)

文章目录 1. 安全Socket2. 保护通信3. 创建安全客户端Socket4. 选择密码组5. 事件处理器6. 会话管理 1. 安全Socket 前面介绍了Socket的基本使用&#xff0c;这里开始介绍Socket的安全问题&#xff0c;作为一个Internet用户&#xff0c;你确实有一些保护手段可以保护自己的隐私…