因此我正在运行此命令来查找运行我的JAR的Java进程。
wmic.exe process where "name like '%java%'" get processid,commandline | find "myjar.jar"
上述命令的控制台输出如下:
javaw -jar "\myjar.jar" 1932
我如何解析此输出,以便可以使用进程ID 1932使用以下命令将其杀死:
TASKKILL /PID 1932
答案 0 :(得分:2)
您不需要获取PID
或使用TaskKill
,WMIC
可以直接为您完成此操作。
从命令行:
WMIC Process Where "CommandLine Like '%myjar.jar%'" Call Terminate >Nul 2>&1
从批处理文件中,您需要将百分比字符加倍:
@WMIC Process Where "CommandLine Like '%%myjar.jar%%'" Call Terminate >Nul 2>&1
答案 1 :(得分:0)
这可能是非常原始的实现,但是它将为您获取进程号。 尝试以下代码:
String output = "javaw -jar \"\\myjar.jar\" 1932";
String[] res = output.split("\\s");
System.out.println(res[res.length-1]);
打印结果将为“ 1932”。
我假设您知道如何从Java来运行的控制台应用程序中获取输出。如果没有,我也可以提供帮助。