it-swarm-eu.dev

Wissen, welcher Java.exe-Prozess auf einem Windows-Computer beendet werden soll

Wenn sich eine auf Java basierende Anwendung auf einem Windows-Computer schlecht verhält, möchten Sie den Prozess im Task-Manager beenden können, wenn Sie die Anwendung nicht normal beenden können. In den meisten Fällen wird auf meinem Computer mehr als eine Java -basierte Anwendung ausgeführt. Gibt es einen besseren Weg, als einfach zufällig Java.exe-Prozesse zu beenden, in der Hoffnung, dass Sie irgendwann die richtige Anwendung finden?

EDIT: Vielen Dank an alle, die mich auf den Sysinternal Process Explorer aufmerksam gemacht haben - genau das, wonach ich suche!

46
Peter

Download Sysinternal Process Explorer . Es ist ein Task-Manager, der viel leistungsfähiger ist als der Windows-Manager.

Eine seiner Funktionen ist, dass Sie alle Ressourcen sehen können, die jeder Prozess verwendet (wie Registrierungsschlüssel, Festplattenverzeichnisse, Named Pipes usw.). Durch Durchsuchen der Ressourcen, die jeder Java.exe-Prozess enthält, können Sie möglicherweise ermitteln, welche Sie beenden möchten. Ich finde es normalerweise heraus, indem ich nach dem suche, der ein bestimmtes Protokolldateiverzeichnis verwendet.

33
Ricardo Reyes

Lauf jps -lv zeigt PIDs und Kommandozeilen aller laufenden Java Prozesse.

Bestimmen Sie die PID der Aufgabe, die Sie beenden möchten. Dann benutze den Befehl:

taskkill /PID <pid>

den Prozess des Fehlverhaltens zu beenden.

54
Misha

Wenn Sie eine GUI-Anwendung wie ProcessExplorer nicht ausführen können und nach den "Befehlszeilen" -Argumenten der Prozesse suchen, können Sie "wmic" über die Befehlszeile verwenden. Beispielsweise:

wmic PROCESS get Processid,Caption,Commandline

Wenn Sie nach einem bestimmten Prozess suchen möchten, können Sie dies tun:

wmic PROCESS where "name like '%Java%'" get Processid,Caption,Commandline

Die Ausgabe davon zeigt Ihnen alle Befehlszeilenargumente von Prozessen wie "Java".

31
Jesse

Wenn Sie im JDK jps verwenden, erhalten Sie weitere Informationen. Weitere Informationen werden mit den Optionen -m, -l und -v angezeigt.

Wenn Sie Java 6 verwenden, versuchen Sie jvisualvm aus dem JDK-bin-Verzeichnis.

6
Bill Michell

Haben Sie versucht, Process Explorer von SysInternals zu verwenden? Es gibt eine viel bessere Vorstellung davon, was innerhalb des Prozesses abläuft. Hier kostenlos online verfügbar: http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx

6
Raithlin

Sie können versuchen, den Windows Task-Manager zu öffnen, indem Sie zur Registerkarte "Anwendungen" wechseln, mit der rechten Maustaste auf die Anwendung klicken und dann "Gehe zu Prozess" auswählen. Dies hebt automatisch den entsprechenden Prozess auf der Registerkarte Prozesse hervor.

4
snafu109

Falls Sie Software entwickeln: Verwenden Sie einen Java-Launcher. Ich habe für einige meiner Anwendungen [Exe4j] [ http://www.ej-technologies.com/products/exe4j/overview.html] verwendet und es hat sehr gut funktioniert. Wenn die Anwendung gestartet wird, wird sie im Windows-Task-Manager als "myserverapp.exe" oder "myapp" aufgeführt. Es gibt auch andere Laucher (die ich nicht auswendig kenne), von denen einige möglicherweise auch umsonst sind.

2
twistedmind

Anstatt ein Tool eines Drittanbieters zu verwenden, können Sie auch ziemlich gut raten, indem Sie sich alle Spalten im Task - Manager ansehen, wenn Sie ungefähr wissen, wie die verschiedenen Java - Prozesse auf Ihrem System aussehen Klicken Sie auf der Registerkarte Prozesse auf Ansicht-> Spalten auswählen und fügen Sie PID, CPU-Zeit, VM Größe und Thread-Anzahl hinzu. Wenn Sie ungefähr wissen, was der Prozess tut, können Sie dies eingrenzen.

In einer Client-Server-Anwendung wird der Server beispielsweise wahrscheinlich mehr Arbeitsspeicher, mehr Threads und mehr CPU-Zeit beanspruchen, da er länger ausgeführt wurde. Wenn Sie einen Prozess beenden, weil er feststeckt, ist könnte im Moment einfach mehr CPU erforderlich.

MAX Java Heap-Speicher spiegelt sich normalerweise direkt in VM Größe wider. Wenn Sie also -Xmx-Flags verwenden, ist der Prozess mit der größeren Einstellung größer VM Größe.

1
TREE

Wenn die Anwendung überhaupt nicht reagiert, ist Process Explorer eine gute Option.

Wenn es reagiert, aber nicht stirbt, können Sie einen Hinweis erhalten, indem Sie manchmal den Task-Manager aufrufen und dann ein anderes Dialogfeld über den Prozess Java verschieben. Der Java -Prozess, der zum Neuzeichnen CPU-Zyklen beansprucht, ist der, nach dem Sie suchen.

1
Mikezx6r

Ich würde vorschlagen, Process Explorer von Sysinternals herunterzuladen und die verschiedenen Java.exe-Prozesse genauer zu betrachten. Auf diese Weise können Sie eine bessere Vorstellung davon bekommen, welche beendet werden sollen.

http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx

Es ist sehr intuitiv und Sie können die Java.exe-Prozesse finden und mit der rechten Maustaste auf ihre Eigenschaften klicken. Von dort aus können Sie die Befehlszeile, den Zeitpunkt der Erstellung usw. anzeigen, um den Prozess zu finden, den Sie beenden möchten.

Ich hoffe es hilft.

1
Henry B

Wenn Sie Process Explorer verwenden und den Mauszeiger über den Java) - Prozess halten, wird die Befehlszeile angezeigt.

1
user6837