Con frecuencia muestro las herramientas jhat, jps y jstack establecidas para desarrolladores en Linux y Mac. Sin embargo, un desarrollador indicó recientemente que estos no se pueden usar en Windows si la aplicación Java en cuestión se ejecuta como Windows Service.No se pueden depurar los servicios de Windows de Java con jhat, jps, jstack
A Sun-filed bug says something very similar, pero se cerró debido a inactividad.
He probado esto por mí mismo, y de hecho parece ser cierto, aunque no puedo creerlo. Aquí está la disposición:
- Tomcat o similares de carreras como un servicio de Windows con el "Iniciar sesión como" == "sistema local"
- Un usuario con privilegios de administrador e ingresados a la misma máquina Windows.
- El administrador abre el Administrador de tareas de Windows, puede ver que java.exe ejecuta
- El administrador abre la consola, escribe "jps", recupera una lista de procesos que no incluye el proceso de servicio java de Tomcat.
- Como intento de fuerza bruta, obtenga el PID de tomcat como un servicio del Administrador de tareas de Windows. Escriba jstack < pid>. Obtenga una respuesta: < pid> ningún proceso
Esto parece reproducible en Windows XP, Windows 2003 Server y Windows 7. Las versiones de Java 1.5 y 1.6 producen el mismo resultado.
¿Hay alguna manera desde la terminal, aunque haya iniciado sesión como administrador, de "sudoear" para obtener JPS y las otras herramientas para ver el servicio de Java?
¿Ha intentado (o es una opción) conectarse usando las opciones de administración remota en lugar de un PID? – McDowell
Es posible que tengamos que recurrir a eso, configurar un jstatd en el ejecutor del servicio para exponer el proceso de Java en un socket, pero el objetivo era simplemente hacerlo a través de PID. Solo quiero confirmar que no me estoy perdiendo nada aquí. Esto parece un gran obstáculo con Windows pero no es un problema en Mac/BSD/Linux. –
¿Resolvió esto la respuesta de Devon_C_Miller? Ejecuto jconsole como SYSTEM, pero esto no eliminó el problema (ver mi comentario sobre la respuesta de Devon_C_Miller) – ripper234