如果尚未启动,请使用Bat文件启动Java应用程序

时间:2015-12-18 04:54:31

标签: java windows batch-file wmic tasklist

如果Java程序已在运行,我想使用bat文件进行检查。如果未运行,请使用start javaw启动它。

我已经尝试了WMIC,到目前为止我只获得了PID。

WMIC process where "CommandLine like '%MyServer.jar%' and Name like '%javaw%'" get ProcessId

但是如何在bat文件中编写if else条件来启动?

我尝试使用任务列表并找到

tasklist /FI "IMAGENAME eq myapp.exe" 2>NUL | find /I /N "myapp.exe">NUL
if "%ERRORLEVEL%"=="0" echo Programm is running

但是对于所有java应用程序myapp.exe都是java.exe

请帮忙......

P.S:可以通过Java程序本身完成此操作,但我的具体情况要求使用bat文件解决方案。

1 个答案:

答案 0 :(得分:1)

您可以使用jcmd.exe查看正在运行的所有java进程的主类。批处理文件的IF-ELSE语法在以下线程中进行了解释

How to use if - else structure in a batch file?

jcmd | find /I /N "sun.tools.jconsole.JConsole"


IF "%ERRORLEVEL%" GTR "0" (
    jconsole.exe
)

IF %ERRORLEVEL% EQU 0 (
    echo Programm is running 
) 

此链接有助于IF构造 - http://ss64.com/nt/if.html