將jar注冊(cè)為windows系統(tǒng)服務(wù)

需求

將spring boot項(xiàng)目編譯成jar,注冊(cè)為windows系統(tǒng)服務(wù)

實(shí)現(xiàn)方式

在網(wǎng)上了解到,winsw這個(gè)開(kāi)源項(xiàng)目,去github看了下,作者常年維護(hù)更新,文檔齊全,擁躉不少,自己寫(xiě)了個(gè)小demo體驗(yàn)了下還不錯(cuò),然后又運(yùn)行了一個(gè)晚上,沒(méi)啥問(wèn)題,遂決定采用它

開(kāi)源地址

需要準(zhǔn)備什么?

  • 在releases下載這個(gè)軟件的本體,一個(gè)exe,一個(gè)配置的xml
  • 一個(gè)可以正常運(yùn)行的jar(我是寫(xiě)了個(gè)自用的項(xiàng)目,每五秒輸出一次日志)
  • 一個(gè)win7或者win10的操作系統(tǒng)
    注:下載示意,我使用的版本是2.11.0


    只下載這兩個(gè)文件

怎么制作服務(wù)?

  1. 準(zhǔn)備好寫(xiě)好的jar,我這個(gè)是個(gè)剛初始化的spring boo項(xiàng)目,就額外加了個(gè)log日志的配置文件,代碼倉(cāng)庫(kù)如下,exe和xml也在里面
  2. 配置xml文件,文件名改成和jar同名文件,例testexe.xml
<?xml version="1.0" encoding="UTF-8" ?>
<service>
  <!-- 該服務(wù)的唯一標(biāo)識(shí) -->
  <id>test-data</id>
  <!-- 注冊(cè)為系統(tǒng)服務(wù)的名稱 -->
  <name>SW test Data</name>
  <!-- 對(duì)服務(wù)的描述 -->
  <description>測(cè)試數(shù)據(jù)生成服務(wù)</description>
  <!-- 將java程序添加到系統(tǒng)服務(wù) -->
  <executable>java</executable>
  <!-- 執(zhí)行的參數(shù) -->
  <arguments>-jar "testexe.jar"</arguments>
  <!-- 日志模式 這種是exe幫忙收集產(chǎn)生的日志配置,如果jar自帶了log的話,也會(huì)輸出 -->
   <!--<logpath>\logs</logpath>
   <log mode="roll-by-size">
        <!-- 歸檔文件大小,單位是KB -->
       <sizeThreshold>3</sizeThreshold>
       <keepFiles>8</keepFiles>
   </log>-->
<!-- 日志模式 這種是exe不用幫忙收集產(chǎn)生的日志配置 因?yàn)閖ar自帶了log輸出那一套 -->
   <log mode="none"></log>
</service>
  1. 將exe文件改名為跟jar同名的文件


    部署示意圖
  2. 將服務(wù)注冊(cè)為系統(tǒng)服務(wù)
# cmd 管理員模式進(jìn)入該文件夾內(nèi)
# 輸入命令注冊(cè)為系統(tǒng)服務(wù)
testexe.exe install testexe.xml
# 看的success字樣說(shuō)明已經(jīng)注冊(cè)成功了
# 打開(kāi)windows 服務(wù)管理界面,右鍵啟動(dòng)這個(gè)服務(wù),查看日志
  1. 卸載該服務(wù)
# cmd 管理員模式進(jìn)入該文件夾內(nèi)
# 停止該服務(wù)
testexe.exe stop
# 輸入命令卸載該服務(wù)
testexe.exe uninstall 

擴(kuò)展

服務(wù)命令

Your renamed WinSW.exe binary also accepts the following commands:

命令 描述
[install] Installs the service 安裝服務(wù).
[uninstall] Uninstalls the service. 卸載服務(wù)
[start] Starts the service. 啟動(dòng)服務(wù)
[stop] Stops the service. 停止服務(wù)
[restart] Stops and then starts the service.重啟服務(wù)
[status] Checks the status of the service. 查看服務(wù)狀態(tài)
[refresh] Refreshes the service properties without reinstallation.無(wú)需重新安裝即可刷新服務(wù)屬性
[customize] Customizes the wrapper executable.自定義包裝器可執(zhí)行文件

以下是官方寫(xiě)的 文檔地址
[https://github.com/winsw/winsw/blob/v3/docs/cli-commands.md]

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容