将项目jar包变为windows服务方法

该博客介绍了如何在Windows服务器上使用Winsw将SpringBoot应用部署为服务。首先,下载并重命名Winsw执行文件,然后创建同名的XML配置文件,设置服务名称、描述、Java环境、jar包路径等参数。接着,以管理员权限执行安装命令,并在服务列表中启动服务。当需要更新应用时,需先卸载服务再重新部署。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

由于项目的后台服务使用springboot框架进行开发,由于部署环境是windows服务器,需要将jar包部署成windows服务。现使用最方便部署的Winsw开源项目部署服务。

Winsw下载地址:https://github.com/kohsuke/winsw/releases,下载最新版本即可(本文以v2.3.0示例)。Winsw下载下来后是一个exe文件,原文件名WinSW.NET4.exe。
在这里插入图片描述


1.将WinSW.NET4.exe文件复制到jar包所在文件夹中。

2.将WinSW.exe重命名为myService.exe。(myService为项目名称)

3.新建一个xml文件,命名为myService.xml(和myService.exe同名),写入以下内容:

<service>
     <id>myService</id><!--服务名称-->
     <name>myService</name><!--服务名称-->
     <description>This is HelloWorld service.</description><!--描述-->
     <!-- java环境变量 -->
     <env name="JAVA_HOME" value="%JAVA_HOME%"/>
     <executable>java</executable>
   
     <arguments>-jar "E:\springboot\myService.jar"</arguments><!--jar包绝对路径-->
     <!-- 开机启动 -->
     <startmode>Automatic</startmode>
     <!-- 日志配置 -->
     <logpath>%BASE%\log</logpath>
     <logmode>rotate</logmode>
 </service>

在这里插入图片描述

以管理员身份打开命令行,定位到当前目录,执行
myService.install

(1)以管理员身份运行cmd,先进入C:\Windows\SysWOW64找到cmd.exe,右击“以管理员身份运行”。
(2)输入d:进入D盘,再cd 路径

5.去windows服务列表(win+R,然后输入services.msc进入服务列表)中找到myService服务,然后启动服务。

P.S. 如果项目更新,先停止服务,使用 myService.exe uninstall 命令卸载服务。然后重复上述步骤
### 将Java JAR注册并配置为Windows/Linux系统服务 #### Windows系统上的实现方法 对于Windows操作系统而言,可以通过NSSM (Non-Sucking Service Manager) 来管理JAR作为后台服务运行。首先下载nssm工具,并将其放置于计划用于执行JAR文件的同一目录内。 接着,在该目录下建立批处理(.bat)文件,其内部应含如下指令: ```batch @echo off java -jar D:\your.jar >> nohup.log 2>&1 ``` 上述命令的作用是在指定位置启动给定名称的JAR应用程序,并将标准输出重定向至`nohup.log`日志文件中[^3]。 随后通过命令行界面调用nssm来进行服务安装操作,具体语法结构如下所示: ```powershell nssm install serviceName "path\to\nssm.exe" "arguments" ``` 此处需替换serviceName为你想要赋予此服务的名字;而"path\\to\nssm.exe"则指明nssm的实际存储地址以及后续参数即为之前创建好的.bat脚本所在路径。 完成以上步骤之后便可通过控制面板中的“服务”选项查看新添加的服务状态了。 #### Linux系统上的实现方式 针对Linux平台来说,则推荐采用Systemd单元文件的形式来定义新的服务项。先编辑一个新的`.service`描述文档,通常位于/etc/systemd/system/之下,内容范例如下: ```ini [Unit] Description=My Application via systemd After=syslog.target [Service] User=nobody ExecStart=/usr/bin/java -jar /opt/myapp/app.jar SuccessExitStatus=143 Restart=on-failure [Install] WantedBy=multi-user.target ``` 这段配置说明了当系统进入多用户模式时自动激活这个应用实例,并且允许失败后的重启机制[^2]。 最后一步是要使这些更改生效,需要刷新守护进程配置缓存并通过相应命令启用所设定的新服务项目: ```bash sudo systemctl daemon-reload sudo systemctl enable myapplication.service sudo systemctl start myapplication.service ``` 这样就完成了基于不同操作系统的JAR设为常驻型服务的过程。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值