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 是无法输出日志。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容