Saltar al contenido

¿Cómo puedo depurar un jar en tiempo de ejecución?

Solución:

http://www.eclipsezone.com/eclipse/forums/t53459.html

Básicamente ejecútalo con:

-Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=y,address=1044

La aplicación, al iniciarse, esperará hasta que se conecte desde otra fuente.

Puede activar la capacidad de depuración de JVM al iniciar el java comando con una opción especial:

java -agentlib:jdwp=transport=dt_socket,address=8000,server=y,suspend=y -jar path/to/some/war/or/jar.jar

Empezando jar.jar así en la línea de comando:

  • poner esta Instancia de JVM en el rol de servidor (server=y) escuchando en el puerto 8000 (address=8000)
  • escribir Listening for transport dt_socket at address: 8000 para stdout y
  • luego pausa la aplicación (suspend=y) hasta que algún depurador se conecte. El depurador actúa como cliente en este escenario.

Las opciones comunes para seleccionar un depurador son:

  • Depurador de Eclipse: Bajo Correr -> Configuraciones de depuración … -> seleccionar Aplicación Java remota -> haga clic en el Nueva configuración de lanzamiento botón. Proporcionar un arbitrario Nombre para esta configuración de depuración, Tipo de conexión: estándar (conexión de enchufe) y como Propiedades de conexión las entradas Anfitrión: localhost, Puerto: 8000. Solicitar los cambios y haga clic en Depurar. En el momento en que el depurador de Eclipse se ha conectado correctamente a la JVM, jar.jar debería comenzar a ejecutarse.
  • herramienta de línea de comandos jdb: Ponlo en marcha con jdb -connect com.sun.jdi.SocketAttach:port=8000

Aunque es un jar ejecutable, aún puede ejecutarlo desde una consola: abra una ventana de terminal, navegue hasta el directorio que contiene el jar e ingrese “java -jar yourJar.jar”. Se ejecutará en esa ventana de terminal, y la salida de sysout y syserr aparecerá allí, incluidos los seguimientos de pila de excepciones no detectadas. Asegúrese de tener su depuración establecida en verdadero cuando compile. Y buena suerte.


Solo piense en otra cosa: si está en Win7, a menudo tiene problemas de permisos con las aplicaciones de usuario que escriben archivos en directorios específicos. Asegúrese de que el directorio en el que está escribiendo su archivo de salida sea uno para el que tenga permisos.

En un proyecto futuro, si es lo suficientemente grande, puede utilizar una de las funciones de registro estándar para la salida de ‘depuración’; entonces será más fácil (más) redirigirlo a un archivo en lugar de depender de tener una consola. Pero para un trabajo más pequeño como este, esto debería estar bien.

¡Haz clic para puntuar esta entrada!
(Votos: 0 Promedio: 0)



Utiliza Nuestro Buscador

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *