Este artículo fue actualizado por última vez en enero de 2020
En un mundo ideal, los bugs nunca llegarían a producción. Pero, los errores de software son una parte inevitable de la vida de un desarrollador. Las herramientas de depuración de Java existen para ayudarnos a resolver los errores más rápidamente, para que podamos seguir haciendo lo que mejor sabemos hacer.
Esta lista de herramientas de depuración de Java le ayudará a evaluar sus opciones rápidamente para que pueda encontrar la mejor para el trabajo.
Encuentra y arregla errores de Java, excepciones, fallos & con facilidad. Raygun captura cada caída e informa en tiempo real
Raygun Crash Reporting
Una de las cosas más difíciles sobre la depuración es que no siempre sabes qué errores están experimentando tus usuarios. Raygun Error Monitoring tiene todo lo que necesitas para descubrir bugs, errores y caídas que ocurren en producción y más allá.
Raygun4Java te permite enviar excepciones desde aplicaciones Java y Scala de escritorio y consola por defecto. Puedes enviar todas las excepciones a tu tablero de Raygun para que puedas ver un diagnóstico detallado de cada error, incluyendo trazas de pila completas, datos relacionados con los nombres de métodos, funciones y clases, y más.
La instalación y configuración no lleva más de unos minutos. Raygun puede procesar cualquier objeto que herede de la clase Throwable
. Características avanzadas como Breadcrumbs, filtros y etiquetas personalizadas facilitan también el proceso de depuración.
Eclipse
Eclipse es un popular IDE de código abierto que se utiliza para el desarrollo de Java, pero también tiene plugins para otros lenguajes como PHP, Python, Ruby y C#. La plataforma Eclipse viene con características avanzadas de depuración que te ayudan a inspeccionar tu código durante la ejecución, lo que la convierte en una herramienta muy completa. Una gran ventaja es que el flujo de trabajo de Eclipse es conveniente porque puedes usar la misma plataforma tanto para el desarrollo como para la depuración.
Una de las mejores características de Eclipse es la Perspectiva de Depuración, que muestra información relevante de depuración de lado a lado, como variables, puntos de interrupción, hilos y pilas de llamadas.
Con Eclipse, también puede suspender y reanudar hilos, recorrer la ejecución del programa, inspeccionar valores y evaluar expresiones.
NetBeans
NetBeans es otro IDE gratuito y de código abierto. Al igual que Eclipse, las funcionalidades de depuración están integradas en la plataforma, por lo que sólo es necesario descargar el IDE para obtener la herramienta de depuración.
NetBeans viene en diferentes paquetes de descarga; para Java, necesitarás la edición Java SE o Java EE. Esta última también tiene soporte para HTML5, JavaScript y los servidores GlassFish y Tomcat, por lo que es una mejor opción para un trabajo de desarrollo más serio.
El depurador de NetBeans tiene muchas características similares a Eclipse. De hecho, ambos son excelentes herramientas de depuración para inspeccionar el código fuente e identificar problemas como fugas de memoria y problemas de concurrencia. NetBeans le permite establecer puntos de interrupción y puntos de interrupción condicionales, recorrer el código, cambiar hilos y supervisar la ejecución en tiempo real.
NetBeans también le proporciona la práctica función del depurador visual para que pueda depurar los elementos visuales de sus aplicaciones Java y JavaFX GUI. Con el depurador visual, puede añadir oyentes a las acciones de la interfaz gráfica de usuario, ver las propiedades de los componentes y la jerarquía de los mismos, y localizar el código fuente.
Si utiliza NetBeans, también tendrá acceso a la herramienta integrada NetBeans Profiler. Con el perfilador, puede comprobar el uso de la memoria, el rendimiento de la CPU, los estados de los hilos y otras características de su aplicación Java. Estas características trabajan juntas para ayudarte a optimizar la velocidad y el uso de la memoria y reducir la sobrecarga.
Como NetBeans fue adquirido por la Apache Software Foundation a principios de 2018, puedes esperar más integraciones y características extendidas en el futuro, especialmente porque Apache ya alberga muchos de los proyectos de Java, desde la herramienta de construcción Maven hasta el servidor Tomcat.
IntelliJ IDEA
Además de Eclipse y NetBeans, IntelliJ IDEA es el tercer IDE que los desarrolladores de Java suelen mencionar cuando se les pregunta qué IDE utilizan. Desarrollado por JetBrains, IntelliJ IDEA cuenta con una comunidad de código abierto y una edición comercial de pago. Es principalmente un IDE para Java, pero también se puede utilizar con otros lenguajes JVM como Groovy, Kotlin y Scala. La edición comercial soporta muchos frameworks JVM y no JVM también, como Spring, Java EE, Play, Grails, GWT, y Vaadin. Mejor aún, ambas ediciones vienen con soporte para el desarrollo de Android – genial si estás ejecutando múltiples proyectos. Al igual que los depuradores IDE mencionados anteriormente, IntelliJ IDEA también incluye un depurador de Java incorporado que funciona fuera de la caja.
IntelliJ IDEA tiene todas las características de depuración estándar que usted esperaría de una herramienta de depuración mejor en su clase. IntelliJ IDEA le permite:
- Crear y configurar puntos de interrupción y puntos de vigilancia
- Evaluar expresiones
- Pausar y reanudar la sesión del depurador
- Examinar hilos suspendidos
- Pasar por el código fuente
- Analizar el uso de memoria
- … Y más
También puede utilizar IntelliJ IDEA para depurar aplicaciones Java de forma remota.
La depuración en línea es la característica más interesante y única de IntelliJ IDEA. El depurador en línea muestra los valores de las variables dentro del código, justo al lado de la línea donde se utilizaron. Cada vez que el valor de la variable cambia, el depurador en línea lo resalta con un color diferente. Para comprobar los valores, no es necesario ir a la ventana de depuración ni pasar el ratón por encima de cada variable, como ocurre con Eclipse y NetBeans.
Visual Studio Code
No siempre es necesario utilizar un IDE para depurar aplicaciones Java. El editor de código fuente multiplataforma de Microsoft, Visual Studio Code también hace posible la depuración de Java a través de la extensión Debugger for Java.
Si utiliza Visual Studio Code para la edición de código de todos modos y necesita una herramienta de depuración ligera y fácil de usar para su flujo de trabajo de desarrollo de Java, Visual Studio Code es una gran opción. Aunque no tiene tantas características avanzadas como los depuradores IDE, sabe todo lo que necesita para una sesión de depuración rápida.
El depurador de Java de Visual Studio Code se basa en Java Debug Server, que amplía otra extensión de Visual Studio Code llamada Language Support for Java de Red Hat.
El depurador de Visual Studio Code le permite:
- Realizar depuración local y remota
- Configurar puntos de interrupción condicionales y puntos de registro
- Pasar por el código fuente
- Inspeccionar y observar variables
- Ver llamadas stacks
- Depurar múltiples hilos
- Evaluar expresiones
- Utilizar el reemplazo de código en caliente
La extensión del depurador de VS Code viene con muchas opciones de configuración que puedes consultar en la documentación.
El depurador de Java (jdb)
Si no puede (o no quiere) utilizar software externo para la depuración de Java, también es posible depurar aplicaciones Java desde la línea de comandos. El depurador de Java (jdb) es un simple depurador de línea de comandos proporcionado por Oracle. Es el equivalente al depurador de GNU (gdb) para la máquina virtual de Java. El depurador de Java está incluido en el kit de desarrollo de Java SE, por lo que si tienes el JDK instalado en tu máquina, no necesitas hacer nada más. Puede iniciar el depurador con el comando jdb
y acceder a la lista de comandos utilizando el comando help
.
El depurador de Java es, de hecho, una demostración de la arquitectura del depurador de la plataforma Java (JDPA). JDPA es una colección de tres interfaces: JVM TI (Java Virtual Machine Tools Interface), JDWP (Java Debug Wire Protocol), y JDI (Java Debug Interface). JDPA es una arquitectura de depuración que proporciona a los desarrolladores herramientas para crear sus propias aplicaciones de depuración – jdb es sólo uno de los posibles usos de JDPA.
El depurador jdb le permite realizar sesiones de depuración en profundidad en la línea de comandos. Con jdb debugger, usted puede:
- Listar, suspender, y reanudar hilos
- Evaluar expresiones
- Imprimir toda la información de los objetos
- Configurar puntos de interrupción
- Observar campos
- Rastrear llamadas a métodos
- Pasar a través del código
- Permitir e impedir la recolección de basura de un objeto
Un depurador de línea de comandos no es la mejor opción para el trabajo de desarrollo diario debido a su complejidad. Sin embargo, viene con una ventaja – la portabilidad. Puedes configurarlo en un servidor sin demasiadas complicaciones, ya que no tienes que conectar el servidor a un depurador IDE remoto. Todo esto hace que jdb sea una herramienta ideal para la resolución rápida de problemas, lo cual es importante en un entorno de producción.
¿Qué herramienta de depuración de Java es la mejor para su proyecto?
Depurar Java no tiene por qué ser un reto. El uso de cualquiera de estas herramientas de depuración hará que el proceso de depuración sea mucho más rápido. Cada caso de uso será diferente, pero la evaluación de sus opciones le ayudará a elegir la herramienta adecuada para su proyecto.
¡La depuración de Java es más fácil cuando se sabe dónde está el error! Raygun Crash Reporting for Java ayuda a los desarrolladores a detectar, diagnosticar y resolver problemas con mayor velocidad y precisión. Haga una prueba gratuita de 14 días.