国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

bat腳本啟動Java服務

這篇具有很好參考價值的文章主要介紹了bat腳本啟動Java服務。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

1.終端cmd窗口運行jar

Java項目一般會被打包成jar后啟動,在windows系統(tǒng)中可以通過終端窗口cmd啟動jar包,即在jar包所在的目錄中打開cmd,或在cmd中進入到jar包目錄,執(zhí)行如下命令:

java -jar myzhxy-1.0.0.jar
或 
javaw -jar myzhxy-1.0.0.jar
// java.exe會在窗口中打印信息,而javaw.exe不會顯示任何東西。

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本

如果想指定jar包啟動時用的配置文件,可用-Dspring.config.location指定配置文件路徑,這樣即可達到配置文件參數(shù)可修改的目的:

java -jar myzhxy-1.0.0.jar -Dspring.config.location=D:\config\application.properties

2. bat腳本啟動jar包

創(chuàng)建一個bat文件,將上面的命令放入bat文件即可,之后只需要將bat和jar包放在同一個目錄下,雙擊bat腳本即可啟動jar包服務。

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本

3.后臺啟動bat腳本

以上的bat腳本雙擊運行后會出現(xiàn)黑色cmd的終端窗口,若不想出現(xiàn)該窗口,可讓其后臺啟動運行,這樣就可以避免不小心關閉了創(chuàng)建運行,即可在腳本開頭加入以下代碼:

if "%1"=="h" goto begin
start mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit
:begin

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本

4. 運行bat只啟動一次jar服務及停止腳本

通過bat腳本后臺啟動jar服務后,可能會出現(xiàn)在啟動之前,該服務要使用的端口已經(jīng)被占用,或者說該服務已經(jīng)被啟動,則需要將被占用的端口釋放掉,且事先需要判斷該jar服務是否被啟動,如果已經(jīng)在啟動狀態(tài),則不需要重新啟動。

查找端口是否被占用,如果端口被占用則將該端口的進程殺掉:

netstat -ano |findstr 9001 // 根據(jù)端口號查進程
taskkill /f /pid 8224  // 根據(jù)進程id殺進程

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本

由于端口有可能是被其他服務占用,所以要判斷該jar服務是否被啟動就不能再通過端口是否被占用來判斷了。這時可以用wmic通過執(zhí)行jar包的命令去查找進程(思路來源于:Java調(diào)用執(zhí)行python腳本 )

wmic process where 'commandline like "%myzhxy-1.0.0.jar%"' get processid

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本
但是,發(fā)現(xiàn)通過該命令查找的進程有兩個,且將第一個殺掉之后,再次執(zhí)行該命令查找進程還是能查到。
再次運行該bat,查找命令,同時將name查找出來,會發(fā)現(xiàn),查出來兩個進程id是因為wmic本身也算啟了一個進程。即可通過執(zhí)行器的name和執(zhí)行命令一起查詢進程id,殺掉之后再次查詢出現(xiàn)沒有可以實例即表明該服務已經(jīng)被停止了:

wmic process where 'name = "java.exe" and commandline like "%myzhxy-1.0.0.jar%"' get processid,name

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本
即,同理,停止jar服務的bat腳本也只能停止指定jar的服務,通過端口停止進程也有可能停止的是其他的服務。停止jar服務的bat腳本代碼如下:

@echo off

for /f "usebackq skip=1 tokens=*" %%I in (`wmic process where "name = 'java.exe' and commandline like '%%myzhxy-1.0.0.jar%%'" get processid 2^>null`) do (
    echo %%I
    if %%I GTR 1 (
        echo processid is: %%I
        set pid=%%I
        goto break
    )
)

:break

if defined pid (
    echo pid = %pid%
    echo taskkill /f /pid %pid%
    taskkill /f /pid %pid%
    echo Succeeded in killing the process.
) else echo The process does not exit.

pause

bat腳本啟動java jar,項目總結(jié),Java,java,開發(fā)語言,bat,腳本
則,只啟動一次的,若jar服務已啟動則不啟動,沒有啟動則先查看端口是否被其他進程占用,占用則釋放端口后再啟動的bat腳本代碼如下:

@echo off

for /f "usebackq skip=1 tokens=*" %%I in (`wmic process where "name = 'java.exe' and commandline like '%%myzhxy-1.0.0.jar%%'" get processid 2^>null`) do (
    if %%I GTR 1 (
        echo processid is: %%I
        set pid=%%I
        goto break
    )
)

set port=9001
echo port=%port%

for /f "usebackq tokens=1-5" %%a in (`netstat -ano ^|findstr %port%`) do (
    if [%%d] EQU [LISTENING] (
        set pid=%%e
    )
)

if defined pid (
    echo pid = %pid%
    echo taskkill /f /pid %pid%
    taskkill /f /pid %pid%
    echo Succeeded in killing the process.
) else echo The process does not exit.

echo java -jar myzhxy-1.0.0.jar
java -jar myzhxy-1.0.0.jar

:break

pause

5.注意事項

  • bat語法中,不能想Java一樣使用break來終止for循環(huán),而是使用 goto的方式來跳出循環(huán)。
  • bat中 比較符號 表示如下:
EQU - 等于
NEQ - 不等于
LSS - 小于
LEQ - 小于或等于
GTR - 大于
GEQ - 大于或等于
  • bat中定義變量set port=9001 等號兩邊不能有空格,否則是錯誤命令行。
  • 使用wmic命令獲取的進程,要判斷是否獲取到進程id不能判斷其是否為空字符,且判斷獲取的%%I是否大于1,中%%I不能加中括號,[%%I],否則被當成字符形式,一直滿足判斷條件。導致終止不了for循環(huán)

6.所用資源

腳本資源文章來源地址http://www.zghlxwxcb.cn/news/detail-546664.html

到了這里,關于bat腳本啟動Java服務的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領支付寶紅包贊助服務器費用

相關文章

  • Windows下bat腳本啟動Java進程cmd中文亂碼修復

    建議執(zhí)行前備份注冊表 中文亂碼原因: 1、cmd默認展示編碼為GBK 2、cmd默認展示字體展示中文會亂碼 以下腳本會將cmd窗口字體改為UTF-8,并修改字體為Consolas,需要注意的是,此操作屬于永久操作,重新打開cmd即可生效 另外,如需執(zhí)行條件判斷邏輯可以使用 reg query 來先查詢出

    2024年02月12日
    瀏覽(23)
  • Windows環(huán)境下,jar程序設置開機自啟動。只需三個步驟不用寫bat腳本

    Windows環(huán)境下,jar程序設置開機自啟動。只需三個步驟不用寫bat腳本

    本教程講述 用工具將jar文件生成為Windows自啟動服務,此方式比手動編寫bat腳本更方便,簡單靈活。 下載地址 1.創(chuàng)建一個文件夾,將jar包,winSW.exe工具包都放到一起,將winSW.exe重命名為install.exe 2.創(chuàng)建install.xml文件,將其中的jar文件路徑設置成自己的。(xml文件的名稱要和ex

    2024年02月15日
    瀏覽(29)
  • java -jar 啟動服務后,關閉命令窗口后服務停止

    問題:當我們用java -jar命令啟動服務后,只有一直保持Xshell的窗口開啟且正常連接服務器時才能訪問服務,當關閉命令窗口時,服務會停止運行 解決:使用nohup命令啟動服務 nohup(no hang up):不掛起 只要通過nohup命令啟動服務,服務會一直運行 1.安裝nohup,查詢nohup是否安裝

    2024年02月12日
    瀏覽(36)
  • SpringBoot項目(jar)部署,啟動腳本

    SpringBoot項目(jar)部署,啟動腳本

    SpringBoot項目(jar)部署,需要先關閉原來啟動的項目,再啟動新的項目。直接輸入命令,費時費力,還容易出錯。所以,使用腳本啟動。 腳本名: start.sh 此腳本需要放置在jar包的同級目錄,才能正確找到jar包。 在腳本所在目錄,執(zhí)行如下命令: 一開始,我在給pid賦值時,

    2024年02月10日
    瀏覽(16)
  • 使用java執(zhí)行bat、sh腳本文件

    在工作中,由于需求,需要完成讓java去調(diào)用.bat文件和.sh文件的操作,接下來開始編碼 此處用到了糊涂工具類 maven如下 由此代碼來執(zhí)行bat或sh腳本文件(PS:糊涂工具包用不用無所謂,只是用來判斷是否為windows系統(tǒng)的)

    2024年02月12日
    瀏覽(26)
  • jenkins使用shell腳本自動部署java項目,nohup啟動不成功

    jenkins使用shell腳本自動部署java項目,nohup啟動不成功

    百度搜索了很長時間,很多種說法,但是都沒說太明白,整合了很長時間,測出來了解決方法,僅測試了自由風格項目和流水線項目,其他的選項未測試,jenkins版本2.400。 ? 以下為正文: 執(zhí)行腳本時,因為jenkins會在構(gòu)建結(jié)束時,將shell運行期間產(chǎn)生的進程全部關閉,所以n

    2024年02月08日
    瀏覽(26)
  • Windows腳本啟動Redis、Java和Nginx服務指南

    接下來,我們將逐步解析這個腳本的各個部分,以便你可以更好地理解它的工作原理。 在本指南中,我們將向您介紹一個用于管理Windows各種服務啟動的批處理腳本。這些服務包括Redis、一個基于Java的服務以及Nginx。該腳本檢查服務是否正在運行,如果沒有,則啟動它。 讓我

    2024年02月15日
    瀏覽(23)
  • bat一鍵批量、有序啟動jar

    作用:暫停10s 目的:保證啟動順序 -n 1 告訴ping它應該只嘗試一次(通常會嘗試4次)。 -w 10000 指定所需的超時(以毫秒為單位)。 nul 已附加,因此ping命令不會在屏幕上輸出任何內(nèi)容。 注意: 192.0.2.x 地址是根據(jù) RFC 3330 保留的,因此在現(xiàn)實世界中絕對不存在。引用規(guī)范:

    2024年02月15日
    瀏覽(15)
  • Ubuntu服務器中java -jar 后臺運行Spring Boot項目

    問:我在我的服務器中java -jar 運行springboot項目,但是我操作不了命令了,必須要終止掉才能執(zhí)行后面的操作,怎么樣才能讓他后臺運行呢?比如我的jar包名是tools-boot-0.0.1-SNAPSHOT.jar 使用nohup命令: 在命令前加上nohup,并通過重定向?qū)⑤敵霰4娴轿募小@纾?問:這個outp

    2024年02月08日
    瀏覽(29)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領取紅包,優(yōu)惠每天領

二維碼1

領取紅包

二維碼2

領紅包