当前位置: 首页 > news >正文

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

前言

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改为了全路径,重新注册服务并成功启动服务

相关文章:

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

前言 Windows系统使用java -jar m命令行运行Java项目会弹出黑窗。首先容易误点导致程序关闭&#xff0c;其次我们希望能在Windows系统做到开机自动启动。因此对于SpringBoot程序&#xff0c;目前主流的方法是采用winsw&#xff0c;简单容易配置 1.下载winsw工具 https://git…...

汽车通用款一键启动舒适进入拓展蓝牙4G网络手机控车系统

1.PKE无钥匙舒适进入功能,靠近车门自动开锁,离开车门自动上锁 2.一键启动/熄火 3.远程遥控启动/熄火 4.遥控设防盗/解除防盗 5.遥控开后尾箱锁负信号输出(需要原车自带尾箱马达和继电器&#xff09; 6.静音防盗/解除防盗 7.启动车后踩脚刹自动上锁 8.熄火车辆后自动开锁…...

QSettings Class

QSettings类 QSettings类公共类型&#xff08;枚举&#xff09;公有成员函数静态成员函数函数作用这个类写文件的特征 QSettings类 QSettings类提供持久的独立于平台的应用程序设置。 头文件:#include< QSettings >qmake:QT core继承&#xff08;父&#xff09;:QObje…...

【vue】关于vue中的插槽

当在Vue.js中构建可复用的组件时&#xff0c;有时候需要在父组件中传递内容给子组件。Vue的插槽&#xff08;slot&#xff09;机制提供了一种灵活的方式来实现这种组件间通信。 插槽允许你在父组件中编写子组件的内容&#xff0c;然后将其传递给子组件进行渲染。这样&#xff…...

Springboot整合Mybatis Plus【超详细】

文章目录 Mybatis Plus简介快速整合1&#xff0c;导入依赖2&#xff0c;yml文件中配置信息3&#xff0c;启动类上加上扫描mapper接口所在包的注解4&#xff0c;编写配置类5&#xff0c;实现自动注入通用字段接口&#xff08;非必需&#xff09;6&#xff0c;编写生成器工具类 使…...

接口测试-使用mock生产随机数据

在做接口测试的时候&#xff0c;有的接口需要进行大量的数据进行测试&#xff0c;还不能是重复的数据&#xff0c;这个时候就需要随机生产数据进行测试了。这里教导大家使用mock.js生成各种随机数据。 一、什么是mock.js mock.js是用于生成随*机数据&#xff0c;拦截 Ajax 请…...

Kohl‘s百货的EDI需求详解

Kohls是一家美国的连锁百货公司&#xff0c;成立于1962年&#xff0c;总部位于美国威斯康星州的门多西。该公司经营各种商品&#xff0c;包括服装、鞋子、家居用品、电子产品、化妆品等&#xff0c;并拥有超过1,100家门店&#xff0c;分布在美国各地。本文将为大家介绍Kohls的E…...

二叉树part6 | ● 654.最大二叉树 ● 617.合并二叉树 ● 700.二叉搜索树中的搜索 ● 98.验证二叉搜索树

文章目录 654.最大二叉树思路代码 617.合并二叉树思路代码 700.二叉搜索树中的搜索思路代码 98.验证二叉搜索树思路官方题解代码困难 今日收获 654.最大二叉树 思路 前序遍历构造二叉树。 找出数组中最大值&#xff0c;然后递归处理左右子数组。 时间复杂度On2 空间复杂度On …...

Linux命令记录

Shells 查看当前系统shell cat /etc/shells # 输出 # /etc/shells: valid login shells /bin/sh /bin/bash /usr/bin/bash /bin/rbash /usr/bin/rbash /bin/dash /usr/bin/dash查看正在使用的shell echo $SHELL # 输出 /bin/bashLinux文件结构 bin&#xff1a;系统可执行文件b…...

eBPF 入门实践教程十五:使用 USDT 捕获用户态 Java GC 事件耗时

eBPF (扩展的伯克利数据包过滤器) 是一项强大的网络和性能分析工具&#xff0c;被广泛应用在 Linux 内核上。eBPF 使得开发者能够动态地加载、更新和运行用户定义的代码&#xff0c;而无需重启内核或更改内核源代码。这个特性使得 eBPF 能够提供极高的灵活性和性能&#xff0c;…...

Linux :: vim 编辑器的初次体验:三种 vim 常用模式 及 使用:打开编辑、退出保存关闭vim

前言&#xff1a;本篇是 Linux 基本操作篇章的内容&#xff01; 笔者使用的环境是基于腾讯云服务器&#xff1a;CentOS 7.6 64bit。 学习集&#xff1a; C 入门到入土&#xff01;&#xff01;&#xff01;学习合集Linux 从命令到网络再到内核&#xff01;学习合集 目录索引&am…...

Linux内核进程创建流程

本文代码基于Linux5.10 内容主要参考《Linux内核深度解析》余华兵 当Linux内核要创建一个新进程时&#xff0c; 流程大致如下 ret fork(); if (ret 0) {/* 子进程装载程序 */ret execve(filename, argv, envp); } else if (ret > 0) {/* 父进程 */ } 大致可以分为创建新…...

【03.04】大数据教程--HTTP协议和静态Web服务器

HTTP协议和静态Web服务器 HTTP&#xff08;Hypertext Transfer Protocol&#xff09;是一种用于传输超文本的协议&#xff0c;它是Web上的基础通信协议。静态Web服务器是指能够提供静态内容&#xff08;如HTML、CSS、JavaScript和图像文件&#xff09;的服务器。 在本教程中&am…...

数据共享传输:台式机和笔记本同步文件!

为什么要在台式机和笔记本同步文件&#xff1f; “我想在台式机和笔记本同步文件。因为我工作时使用笔记本&#xff0c;在家里使用安装了Windows 10系统的台式机&#xff0c;我想要在笔记本和台式机之间同步应用程序、游戏、文档等。有没有一种可以在台式机和笔记本同步文件的…...

java设计模式(十二)代理模式

目录 定义模式结构角色职责代码实现静态代理动态代理jdk动态代理cglib代理 适用场景优缺点 定义 代理模式给某一个对象提供一个代理对象&#xff0c;并由代理对象控制对原对象的引用。说简单点&#xff0c;代理模式就是设置一个中间代理来控制访问原目标对象&#xff0c;以达到…...

Umi微前端水印踩坑以及解决方案

最近公司需要在管理后台加一个水印方案~ 项目用的umi方案,以为就是改一个配置的问题,后来发现坑点还蛮多~ 希望此稳定能帮助到用umi 的你们. 一. 先来说说心路历程 坑点1 umi的水印适配只能在layout中进行配置,也就是路由配置中layout为false的页面无法配置水印,比如说登录页…...

Android RK3588-12 hdmi-in Camera方式支持NV24格式

hdmi-in Camera方式支持NV24格式 modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDevice.cpp modified: hardware/interfaces/camera/device/3.4/default/ExternalCameraDeviceSession.cpp diff --git a/hardware/interfaces/camera/device/3.4…...

Hive窗口函数详细介绍

文章目录 Hive窗口函数概述样本数据表结构表数据 窗口函数窗口聚合函数count()SQL演示 sum()SQL演示 avg()SQL演示 min()SQL演示 max()SQL演示 窗口分析函数first_value() 取开窗第一个值应用场景SQL演示 last_value()取开窗最后一个值应用场景SQL演示 lag(col, n, default_val…...

牛客网【c语言练习】

单选题 下面代码段的输出是&#xff08;-12 &#xff09; int main() {int a3; printf("%d\n",(aa-a*a)); } aa-9&#xff0c;此时还是等于3&#xff0c;因为a*a只是运算&#xff0c;并没有赋值&#xff1b;之后再算a-9&#xff0c;运算之前a等于3&#xff0c;运算…...

C++类和对象(上)

文章目录 &#x1f98d;1. 面向过程和面向对象&#x1f9a7;2. 类的引入&#x1f436;3. 类的定义&#x1f9ae;4. 类的访问控制和封装&#x1f356;4.1 访问限定符&#x1f356;4.2 封装 &#x1f429;5. 类的作用域&#x1f405;6. 类的实例化&#x1f404;7. 类的大小计算&a…...

AI Agent开发实战:基于PyTorch与LangChain构建自主任务执行智能体

AI Agent开发实战&#xff1a;基于PyTorch与LangChain构建自主任务执行智能体 1. 为什么需要自主任务执行智能体 想象一下&#xff0c;你每天要处理几十封邮件、查找各种资料、整理会议纪要&#xff0c;还要写周报。这些重复性工作占据了大量时间&#xff0c;而真正需要创造力…...

Lychee模型API网关配置:Kong中间件集成指南

Lychee模型API网关配置&#xff1a;Kong中间件集成指南 1. 引言 在AI服务部署过程中&#xff0c;如何有效管理和保护模型API是一个常见挑战。Lychee模型作为强大的多模态处理工具&#xff0c;在生产环境中需要可靠的流量控制和安全防护机制。这就是API网关发挥作用的地方。 …...

HunyuanVideo-Foley 效果对比:不同算法模型生成音效的质量评估

HunyuanVideo-Foley 效果对比&#xff1a;不同算法模型生成音效的质量评估 1. 音效生成技术概览 音效生成技术正在经历一场革命性的变革。从早期的采样拼接到如今的AI生成&#xff0c;算法模型已经能够根据简单的文字描述创造出丰富多样的声音效果。这项技术在影视制作、游戏…...

DeepSeek-V3量化黑科技:w4a8精度反超官方!

DeepSeek-V3量化黑科技&#xff1a;w4a8精度反超官方&#xff01; 【免费下载链接】DeepSeek-V3-w4a8-mtp-QuaRot-per-channel 项目地址: https://ai.gitcode.com/Eco-Tech/DeepSeek-V3-w4a8-mtp-QuaRot-per-channel 导语&#xff1a;国内大模型量化技术再获突破&#…...

Go gRPC 双向流通信实例

Go gRPC双向流通信实例解析 在现代分布式系统中&#xff0c;高效的双向通信是核心需求之一。gRPC作为Google开源的高性能RPC框架&#xff0c;支持双向流通信模式&#xff0c;允许客户端和服务端同时发送和接收多条消息。本文将以Go语言为例&#xff0c;介绍gRPC双向流通信的实…...

Qwen3-Embedding-4B广告过滤应用:恶意内容识别系统实战

Qwen3-Embedding-4B广告过滤应用&#xff1a;恶意内容识别系统实战 1. 引言&#xff1a;当广告变成“牛皮癣”&#xff0c;我们如何反击&#xff1f; 想象一下&#xff0c;你运营着一个用户社区或内容平台。每天&#xff0c;用户都在热情地分享、讨论。但总有一些不速之客&am…...

CasRel在教育AI中的应用:试题解析中‘知识点-考查方式-难度等级’三元组标注

CasRel在教育AI中的应用&#xff1a;试题解析中‘知识点-考查方式-难度等级’三元组标注 1. 引言&#xff1a;从海量试题到结构化知识 如果你是教育行业的从业者&#xff0c;无论是老师、教研员还是在线教育平台的产品经理&#xff0c;一定都面临过这样的困扰&#xff1a;手头…...

Markdown到PowerPoint转换技术:md2pptx的架构创新与工程实践

Markdown到PowerPoint转换技术&#xff1a;md2pptx的架构创新与工程实践 【免费下载链接】md2pptx Markdown To PowerPoint converter 项目地址: https://gitcode.com/gh_mirrors/md/md2pptx 在技术文档创作和演示文稿制作领域&#xff0c;传统工作流存在显著效率瓶颈。…...

电缆电热耦合与热仿真:COMSOL中电缆铺设的热分析模拟与应用研究

电缆电热耦合仿真 comsol 电缆铺设热仿真电缆散热设计这事看起来简单&#xff0c;实操起来全是坑。上个月给某变电站做电缆沟热仿真&#xff0c;甲方拿着计算器咔咔按公式说肯定没问题&#xff0c;结果实测温度超了十几度。后来用COMSOL重新建模才发现&#xff0c;土壤热阻和邻…...

手把手教你部署DeepSeek-R1:纯CPU环境搭建逻辑推理AI全攻略

手把手教你部署DeepSeek-R1&#xff1a;纯CPU环境搭建逻辑推理AI全攻略 1. 从零开始&#xff1a;为什么你需要一个本地推理引擎 想象一下这个场景&#xff1a;你正在处理一份包含敏感数据的文档&#xff0c;需要AI帮你分析逻辑关系&#xff0c;但公司规定数据不能上传到云端。…...