windows下bat批量运行jar包

1. 在cmd下,java -jar ***.jar 运行后窗口不能关,但如果有多个jar,则会有多个cmd的窗口,很难看

2. 在cmd下,javaw -jar ***.jar运行后窗口可以关,但如果有多个jar,则进程中会有许多相同的javaw进程,无法区分那个是那个jar,很难去关闭某个jar的进程

为解决这两个问题

1. 为解决多个cmd的窗口问题:通过bat文件批量运行jar包,每个包用 start javaw -jar ***.jar来运行

2. 为解决进程难以区分问题:通过复制javaw.exe为对应jar包的文件名称来执行jar 包,诸如 abc.jar,复制javaw.exe 为 abc.exe,然后 start abc -jar abc.jar,这样进程中就是abc

3. 如果jar之间有执行依赖,则通过 ping 来给前一个jar提供执行时间

如下参考示例

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

echo ******启动aaa.jar******

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

rem 复制文件

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执行是否正确,只能通过执行后jar是否提供了服务来验证,如果jar能输出日志就最好了,现在没有办法输出执行日志,即相当于把 java -jar aaa.jar在cmd中的日志输出到文件,但start aaa -jar aaa.jar 是无法输出日志。

你可能感兴趣的:(windows下bat批量运行jar包)