如何用bat关闭特定的java窗口?

如何用bat关闭特定的java窗口?

我有一个蝙蝠程序,可以启动 3 个独立的 Java 窗口,如下所示:

start java -jar somejar.jar
start java -jar _the_jar_I_want_to_close_.jar
start java -jar someotherjar.jar

我需要一个关闭的bat命令仅有的_the_jar_I_want_to_close_.jar。不幸的是,这些窗口的唯一区别就是 PID,但是每次启动时 PID 都会改变。

这是我尝试过的

  1. 通过 PID 终止任务taskkill /PID #### 问题:PID 不是恒定的。

  2. 从 java 中终止所有进程taskkill /IM java.exe 问题:还有另外 2 个我不想停止的 Java 窗口

  3. 根据图像名称终止所有进程:taskkill /IM java 问题:与上面相同,只需要关闭一个窗口,而不是全部三个。

有可能吗?

  1. 我启动窗口时可以命名窗口吗,以便以后引用该名称?

答案1

为什么不使用start "title 4 kills"

start "java 1" java -jar somejar.jar
start "java 2" java -jar _the_jar_I_want_to_close_.jar
start "java 3" java -jar someotherjar.jar

taskkill /F /FI "WindowTitle eq "java 2"

答案2

这需要两个步骤:

  1. 查找 PID(取自此线程https://serverfault.com/questions/126502/how-to-get-own-process-pid-from-the-command-prompt-in-windows

    for /f "tokens=2 USEBACKQ" %f IN (`tasklist /NH /FI "WINDOWTITLE eq _the_jar_I_want_to_close_*"`) Do set ourPID=%f
    
  2. 根据PID杀死进程:

    taskkill /F /PID %ourPID%
    

相关内容