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
parastdout
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.