Wie schließe ich ein bestimmtes Java-Fenster mit einem Fledermaus?

Wie schließe ich ein bestimmtes Java-Fenster mit einem Fledermaus?

Ich habe ein Bat, das drei separate Java-Fenster wie folgt startet:

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

Ich brauche einen Bat-Befehl, der schließtNUR_das_JAR_das_ich_schließen_möchte_.jar. Leider ist das einzige, was diese Fenster unterscheidet, die PID, aber die PID ändert sich bei jedem Start.

Folgendes habe ich versucht

  1. Taskkill von PIDtaskkill /PID #### Problem:Der PID ist nicht konstant.

  2. Beenden aller Prozesse von Javataskkill /IM java.exe Problem:Es gibt 2 andere Java-Fenster, die ich nicht stoppen möchte

  3. Beenden aller Prozesse anhand des Image-Namens:taskkill /IM java Problem:Wie oben, Sie müssen nur ein Fenster schließen, nicht alle drei.

Möglichkeiten?

  1. Ist es möglich, den Fenstern beim Starten einen Namen zu geben, sodass ich später auf diesen Namen verweisen kann?

Antwort1

Warum nicht verwendenstart "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"

Antwort2

Dies erfolgt in zwei Schritten:

  1. Finden Sie die PID (aus diesem Thread entnommenhttps://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. Beenden Sie den Prozess durch PID:

    taskkill /F /PID %ourPID%
    

verwandte Informationen