如果尚未启动,请使用 Bat 文件启动 Java 应用程序
Start a Java application using Bat file if not already started
我想使用 bat 文件检查 Java 程序是否已经 运行。如果它不是 运行,则使用 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 文件解决方案。
您可以使用 jcmd.exe 查看所有 java 进程的主要 class 运行。批处理文件的 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
)
这个 link 将有助于 IF 构造 - http://ss64.com/nt/if.html
我想使用 bat 文件检查 Java 程序是否已经 运行。如果它不是 运行,则使用 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 文件解决方案。
您可以使用 jcmd.exe 查看所有 java 进程的主要 class 运行。批处理文件的 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
)
这个 link 将有助于 IF 构造 - http://ss64.com/nt/if.html