windows下bat批量運行jar包

1. 在cmd下,java -jar ***.jar 運行后窗口不能關(guān),但如果有多個jar,則會有多個cmd的窗口,很難看

2. 在cmd下,javaw -jar ***.jar運行后窗口可以關(guān),但如果有多個jar,則進(jìn)程中會有許多相同的javaw進(jìn)程,無法區(qū)分那個是那個jar,很難去關(guān)閉某個jar的進(jìn)程

為解決這兩個問題

1. 為解決多個cmd的窗口問題:通過bat文件批量運行jar包,每個包用 start javaw -jar ***.jar來運行

2. 為解決進(jìn)程難以區(qū)分問題:通過復(fù)制javaw.exe為對應(yīng)jar包的文件名稱來執(zhí)行jar 包,諸如 abc.jar,復(fù)制javaw.exe 為 abc.exe,然后 start abc -jar abc.jar,這樣進(jìn)程中就是abc

3. 如果jar之間有執(zhí)行依賴,則通過 ping 來給前一個jar提供執(zhí)行時間

如下參考示例

set javaw="%JAVA_HOME%\bin\javaw.exe"

echo ******啟動aaa.jar******

set aaa="%JAVA_HOME%\bin\aaa.exe"

rem 復(fù)制文件

if not exist? %aaa% (

? copy %javaw% %aaa%

)

start aaa -Xms128m -Xmx128m -jar aaa.jar

rem 等待8秒,ping一次1秒

ping -n 8 127.0.0.1>nul

echo *******啟動bbb.jar******

set bbb="%JAVA_HOME%\bin\bbb.exe"

if not exist? %bbb% (

? copy %javaw% %bbb%

)

start bbb -Xms128m -Xmx128m -jar bbb.jar

ping -n 8 127.0.0.1>nul


上述有個不好的體驗,每個jar執(zhí)行是否正確,只能通過執(zhí)行后jar是否提供了服務(wù)來驗證,如果jar能輸出日志就最好了,現(xiàn)在沒有辦法輸出執(zhí)行日志,即相當(dāng)于把 java -jar aaa.jar在cmd中的日志輸出到文件,但start aaa -jar aaa.jar 是無法輸出日志。

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

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

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