it-swarm.it

Sapere quale processo Java.exe uccidere su un computer Windows

Quando un'applicazione Java Java inizia a comportarsi in modo anomalo su un computer Windows, si desidera poter terminare il processo nel Task Manager se non è possibile chiudere l'applicazione normalmente. La maggior parte delle volte, ce n'è più di uno Java in esecuzione sul mio computer. Esiste un modo migliore rispetto all'uccisione casuale dei processi Java.exe nella speranza che alla fine colpisca l'applicazione corretta?

EDIT: Grazie a tutte le persone che mi hanno indicato Sysinternal's Process Explorer - Esattamente quello che sto cercando!

46
Peter

Scarica Sysinternal's Process Explorer . È un task manager molto più potente del gestore di Windows.

Una delle sue caratteristiche è che puoi vedere tutte le risorse che ogni processo sta usando (come chiavi di registro, directory del disco rigido, named pipe, ecc.). Quindi, sfogliare le risorse contenute in ogni processo Java.exe potrebbe aiutarti a determinare quale vuoi uccidere. Di solito lo scopro cercando quello che utilizza una determinata directory del file di registro.

33
Ricardo Reyes

Correre jps -lv che mostra i PID e le righe di comando di tutti i processi in esecuzione Java.

Determina il PID dell'attività che vuoi uccidere. Quindi utilizzare il comando:

taskkill /PID <pid>

per uccidere il processo di comportamento scorretto.

54
Misha

Se non è possibile eseguire un'applicazione GUI come ProcessExplorer e si stanno cercando gli argomenti "Command Line" dei processi, è possibile utilizzare "wmic" tramite la riga di comando. Per esempio:

wmic PROCESS get Processid,Caption,Commandline

Se vuoi cercare un processo specifico puoi farlo:

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

L'output di questo ti mostrerà tutti gli argomenti della riga di comando di processi come "Java".

31
Jesse

L'uso di jps nel JDK ti darà maggiori informazioni. Ulteriori informazioni vengono visualizzate con le opzioni -m, -l e -v.

7

Se si utilizza Java 6, provare jvisualvm dalla directory bin JDK.

6
Bill Michell

Hai provato a utilizzare Process Explorer da SysInternals? Dà un'idea molto migliore di ciò che è in esecuzione all'interno del processo. Disponibile online gratuitamente qui: http://technet.Microsoft.com/en-us/sysinternals/bb896653.aspx

6
Raithlin

Puoi provare ad aprire Task Manager di Windows, andare alla scheda Applicazioni, fare clic con il pulsante destro del mouse sull'applicazione e quindi selezionare "Vai al processo". Ciò evidenzierà automaticamente il processo appropriato nella scheda Processi.

4
snafu109

Nel caso tu stia sviluppando software: usa un launcher Java. Ho usato per alcune delle mie applicazioni [Exe4j] [ http://www.ej-technologies.com/products/exe4j/overview.html] e ha funzionato molto bene. Quando l'applicazione viene avviata, viene elencata come ad esempio "myserverapp.exe" o "myapp" nel gestore attività di Windows. Ci sono anche altri lavandini (non li conosciamo a memoria), alcuni di loro potrebbero essere anche gratuiti.

2
twistedmind

Invece di utilizzare uno strumento di terze parti, puoi anche fare una supposizione piuttosto buona guardando tutte le colonne in Task Manager se sai all'incirca quali sono i vari processi Java sul tuo sistema. Scheda Processi, usa Visualizza-> Seleziona colonne e aggiungi PID, Tempo CPU, VM e Numero thread. Sapere all'incirca cosa sta facendo il processo dovrebbe aiutare a restringerlo.

Ad esempio, in un'app client-server, il server utilizzerà probabilmente più memoria, avrà più thread e avrà utilizzato più tempo della CPU perché ha funzionato più a lungo. Se stai uccidendo un processo perché è bloccato, potrebbe semplicemente sta usando più CPU in questo momento.

MAX Java di solito si riflette direttamente in VM. Quindi, se si utilizzano flag -Xmx, il processo con l'impostazione più grande avrà un valore maggiore VM Dimensione.

1
TREE

Se l'applicazione non risponde affatto, Process Explorer è una buona opzione.

Se è una specie di risposta, ma non muore, a volte viene visualizzato Task Manager e quindi si sposta un'altra finestra di dialogo sul processo Java ti darà un indizio. Il Java = il processo che sta riprendendo i cicli della CPU per ridisegnare è quello che stai cercando.

1
Mikezx6r

Suggerirei di scaricare Process Explorer da Sysinternals e guardare i diversi processi Java.exe in modo più ravvicinato, in questo modo puoi avere un'idea migliore di quale uccidere.

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

È molto intuitivo e puoi trovare i processi Java.exe e fare clic con il pulsante destro del mouse e andare alle loro proprietà, da lì puoi vedere la loro riga di comando, il momento della creazione, ecc. Che può aiutarti a trovare il processo che vuoi uccidere.

Spero che sia d'aiuto.

1
Henry B

L'uso di ProcessExplorer e il passaggio del mouse sopra il processo Java mostrerà la riga di comando.

1
user6837