Tattu
Tattu

Reputation: 327

Start a Java application using Bat file if not already started

I want to check using a bat file if a Java program is already running. If its not running then start it using start javaw.

I have tried WMIC and I am only successful so far to get the PID.

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

But how to write an if else condition in the bat file to start?

I tried using tasklist and find

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

But for all the java applications myapp.exe will be java.exe.

Please help...

P.S: There are options for this to be done via the Java program itself, but my specific situation asks for a bat file solution.

Upvotes: 1

Views: 689

Answers (1)

Akshay Gehi
Akshay Gehi

Reputation: 362

You can use jcmd.exe to see the main class of all the java processes running. The IF-ELSE syntax of the batch file is explained in the following thread

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 
) 

This link would help with the IF construct - http://ss64.com/nt/if.html

Upvotes: 1

Related Questions