para - java offline
Saber qué proceso de java.exe matar en una máquina de Windows (12)
Cuando una aplicación basada en Java comienza a comportarse mal en una máquina con Windows, es posible que pueda eliminar el proceso en el administrador de tareas si no puede salir de la aplicación normalmente. La mayoría de las veces, hay más de una aplicación basada en Java ejecutándose en mi máquina. ¿Hay una forma mejor que simplemente matar aleatoriamente a los procesos de java.exe con la esperanza de que finalmente llegue a la aplicación correcta?
EDITAR: Gracias a todas las personas que me señalaron Process Explorer de Sysinternal: ¡exactamente lo que estoy buscando!
¿Has probado usar Process Explorer de SysInternals? Da una idea mucho mejor de lo que se está ejecutando dentro del proceso. Disponible gratis en línea aquí: http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Descargue el Explorador de procesos de Sysinternal . Es un administrador de tareas mucho más poderoso que el propio administrador de Windows.
Una de sus características es que puede ver todos los recursos que utiliza cada proceso (como claves de registro, directorios de disco duro, canalizaciones con nombre, etc.). Por lo tanto, explorar los recursos que posee cada proceso de java.exe puede ayudarlo a determinar cuál quiere eliminar. Normalmente lo descubro buscando el que está usando cierto directorio de archivos de registro.
El uso de ProcessExplorer y al pasar el cursor sobre el proceso de Java mostrará la línea de comando.
En caso de que esté desarrollando software: use un java-launcher. Utilicé algunas de mis aplicaciones [Exe4j] [ http://www.ej-technologies.com/products/exe4j/overview.html] y funcionó muy bien. Cuando se inicia la aplicación, aparece como, por ejemplo, "myserverapp.exe" o "myapp" en el administrador de tareas de Windows. También hay otros lauchers (no los conozco de memoria), algunos de ellos también pueden ser gratis.
En lugar de utilizar una herramienta de terceros, también puede adivinar muy bien mirando todas las columnas en el administrador de tareas si sabe aproximadamente cuáles son los diversos procesos de Java en su sistema. En la pestaña Procesos, use Ver-> Seleccionar columnas y agregue PID, Tiempo de CPU, Tamaño de VM y Número de subprocesos. Saber más o menos lo que está haciendo el proceso debería ayudar a reducirlo.
Por ejemplo, en una aplicación cliente-servidor, el servidor probablemente usará más memoria, tendrá más subprocesos y habrá usado más tiempo de CPU porque se ha estado ejecutando más tiempo. Si matas un proceso porque está atascado, podría estar usando más CPU ahora mismo.
La memoria del montón MAX de Java normalmente se refleja directamente en el tamaño de la VM. Por lo tanto, si usa las marcas -Xmx, el proceso con la configuración más grande tendrá un tamaño VM más grande.
Puede intentar abrir el Administrador de tareas de Windows, ir a la pestaña Aplicaciones, hacer clic con el botón derecho en la aplicación y luego seleccionar "Ir al proceso". Esto resaltará automáticamente el proceso apropiado en la pestaña Procesos.
Si está utilizando Java 6, pruebe jvisualvm desde el directorio JDK bin.
Si la aplicación no responde en absoluto, entonces Process Explorer es una buena opción.
Si es tipo de respuesta, pero no se está muriendo, a veces abrir el administrador de tareas y luego mover otro diálogo sobre el proceso de Java le dará una pista. El proceso de Java que está tomando ciclos de CPU para volver a dibujar es el que está buscando.
Sugiero que descargue Process Explorer de Sysinternals y mire los diferentes procesos de java.exe de forma más cercana, de esa forma podrá tener una mejor idea de cuál matar.
http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx
Es muy intuitivo y puede encontrar los procesos de java.exe y hacer clic derecho e ir a sus propiedades, desde allí puede ver su línea de comandos, la hora de creación, etc. que pueden ayudarlo a encontrar el proceso que desea eliminar.
Espero eso ayude.
Usar jps en el JDK le dará más información. Se muestra más información con las opciones -m, -l y -v.
Si no puede ejecutar una aplicación de GUI como ProcessExplorer y está buscando los argumentos de "Línea de comando" de los procesos, entonces puede usar "wmic" a través de la línea de comando. Por ejemplo:
wmic PROCESS get Processid,Caption,Commandline
Si desea buscar un proceso específico, puede hacer esto:
wmic PROCESS where "name like ''%java%''" get Processid,Caption,Commandline
El resultado de esto le mostrará todos los argumentos de línea de comando de procesos como "java".
Ejecute jps -lv
que muestra los PID y las líneas de comandos de todos los procesos Java en ejecución.
Determine el PID de la tarea que desea matar. Luego usa el comando:
taskkill /PID <pid>
para matar el proceso de mala conducta.