Visual Studio Code es excelente para depurar aplicaciones Java a través de la extensión Debugger para Java .
Es un depurador de Java liviano basado en Java Debug Server que extiende el Soporte de idioma para Java de Red Hat .
Aquí hay una lista de funciones de depuración compatibles:
- Lanzar / Adjuntar
- Puntos de ruptura
- Excepciones
- Pausa y continúa
- Entrar / salir / pasar
- Variables
- Pilas de llamadas
- Trapos
- Consola de depuración
El depurador de Java es un proyecto de código abierto que invita a los colaboradores a colaborar a través de los repositorios de GitHub:
Para ejecutar y depurar la prueba de JUnit, también puede instalar las extensiones de Java Test Runner , que es otra extensión liviana que puede usar para administrar pruebas en sus proyectos.
Instalar
Para que el depurador funcione, también debe tener instalado el Soporte de idioma para Java (TM) por laextensión de Red Hat . Para hacerlo más fácil, hay un paquete de extensión de Java que agrupa el soporte de idiomas para Java (TM) de Red Hat , el depurador para Java y varias otras extensiones populares de Java .
Puede instalar manualmente el paquete de extensión desde la vista de Extensiones ( Ctrl + Shift + X ) escribiendo vscode-java-pack
en el cuadro de búsqueda. También se le pedirá que instale el paquete de extensión de Java cuando edite un archivo de Java en el código VS por primera vez.
Utilizar
Es muy fácil ejecutar y depurar su aplicación Java:
- Lanzamiento VS Code.
- Abra un proyecto de Java (Maven / Gradle / Eclipse).
- Abra un archivo Java para activar las extensiones.
- (Opcional) Agregue configuraciones de depuración y edite el
launch.json
archivo de configuración. - Presione F5.
Si no hay un archivo de configuración de depuración launch.json
en su proyecto, el depurador buscará automáticamente la clase principal y generará la configuración para que pueda iniciar su aplicación.
También puede configurarlo launch.json
usted mismo para establecer configuraciones personalizadas o adjuntarlo a otro proceso de Java.
Depuración de archivos individuales
VS Code puede ejecutar y depurar archivos Java individuales sin ningún proyecto.
Entradas de sesión de depuración
La consola de depuración predeterminada en VS Code no admite entradas. Si su programa necesita entradas de un terminal, puede usar el terminal integrado ( Ctrl + ` ) dentro del código VS o un terminal externo para iniciarlo.
Filtrado por pasos
La extensión admite el filtro de pasos para filtrar los tipos que no desea ver o recorrer durante la depuración. Con esta función, puede configurar los paquetes para que se filtren dentro de usted, de launch.json
modo que se puedan omitir cuando ingrese.
El depurador también le permite evaluar expresiones en la ventana WATCH así como en la consola de depuración. También puede usar esta función para la configuración del punto de interrupción condicional.
Reemplazo de código caliente
Otra característica avanzada que el depurador admite es el reemplazo de «Código caliente». El reemplazo de código activo (HCR) es una técnica de depuración mediante la cual el depurador de Java transmite nuevos archivos de clase a través del canal de depuración a otra máquina virtual Java (JVM). HCR facilita el desarrollo experimental y fomenta la codificación iterativa de prueba y error. Con esta nueva característica, puede iniciar una sesión de depuración y cambiar un archivo Java en su entorno de desarrollo, y el depurador reemplazará el código en la JVM en ejecución. No se requiere reiniciar, razón por la cual se llama «caliente». A continuación se muestra una ilustración de cómo puede usar HCR con Debugger para Java en VS Code.
Configuración
Hay muchas opciones y configuraciones disponibles para configurar el depurador. Por ejemplo, la configuración del directorio de trabajo actual (cwd) y las variables de entorno se realiza fácilmente con las opciones de inicio.
Consulte la documentación de Language Support for Java de la extensión Red Hat para obtener ayuda con la configuración de su proyecto.
Lanzamiento
mainClass
(obligatorio): la clase principal del programa (nombre completo, por ejemplo [mymodule /] com.xyz.MainClass).args
– Los argumentos de línea de comando pasaron al programa.sourcePaths
– Los directorios de fuentes adicionales del programa. El depurador busca el código fuente de la configuración del proyecto de manera predeterminada. Esta opción permite que el depurador busque el código fuente en directorios adicionales.modulePaths
– Los módulos para el lanzamiento de la JVM. Si no se especifica, el depurador se resolverá automáticamente a partir del proyecto actual.classPaths
– Los classpaths para lanzar la JVM. Si no se especifica, el depurador se resolverá automáticamente a partir del proyecto actual.encoding
– Lafile.encoding
configuración de la JVM. Si no se especifica, se usará ‘UTF-8’. Los valores posibles se pueden encontrar en Codificaciones compatibles .vmArgs
– Las opciones adicionales y las propiedades del sistema para la JVM (por ejemplo, -Xms <tamaño> -Xmx <tamaño> -D <nombre> = <valor>).projectName
– El proyecto preferido en el que el depurador busca clases. Podría haber nombres de clase duplicados en diferentes proyectos. Esta configuración también funciona cuando el depurador busca la clase principal especificada al iniciar un programa. Es requerido para la evaluación de la expresión.cwd
– El directorio de trabajo del programa.env
– Las variables de entorno adicionales para el programa.stopOnEntry
– Pausar automáticamente el programa después del lanzamiento.console
– La consola especificada para iniciar el programa. Predeterminado ainternalConsole
.internalConsole
– VS Code Debug Console (flujo de entrada no admitido).integratedTerminal
– Terminal integrado VS Code.externalTerminal
– Terminal externo que se puede configurar en la configuración del usuario.
stepFilters
– Omita las clases o métodos especificados al caminar.classNameFilters
– Saltee las clases especificadas al caminar. Los nombres de las clases deben estar completamente calificados. Comodín es compatible.skipSynthetics
– Omita los métodos sintéticos al caminar.skipStaticInitializers
– Omita los métodos de inicialización estáticos al avanzar.skipConstructors
– Omita los métodos del constructor al caminar.
Adjuntar
hostName
(obligatorio): el nombre de host o la dirección IP del depurador remoto.port
(obligatorio): el puerto de depuración del depurador remoto.timeout
– Valor de tiempo de espera antes de volver a conectar, en milisegundos (valor predeterminado a 30000ms).sourcePaths
– Los directorios de fuentes adicionales del programa. El depurador busca el código fuente de la configuración del proyecto de manera predeterminada. Esta opción permite que el depurador busque el código fuente en directorios adicionales.projectName
– El proyecto preferido en el que el depurador busca clases. Podría haber nombres de clase duplicados en diferentes proyectos. Esta configuración también funciona cuando el depurador busca la clase principal especificada al iniciar un programa.stepFilters
– Omita las clases o métodos especificados al caminar.classNameFilters
– Saltee las clases especificadas al caminar. Los nombres de las clases deben estar completamente calificados. Comodín es compatible.skipSynthetics
– Omita los métodos sintéticos al caminar.skipStaticInitializers
– Omita los métodos de inicialización estáticos al avanzar.skipConstructors
– Omita los métodos del constructor al caminar.
Ajustes de usuario
java.debug.logLevel
– El nivel mínimo de registros del depurador que se envían al Código VS, se establece de manera predeterminadawarn
.java.debug.settings.showHex
– Mostrar números en formato hexadecimal en la vista VARIABLES , por defectofalse
.java.debug.settings.showStaticVariables
– Mostrar variables estáticas en la vista VARIABLES , por defectotrue
.java.debug.settings.showQualifiedNames
– Mostrar nombres de clase totalmente calificados en la vista VARIABLES , por defectofalse
.java.debug.settings.maxStringLength
– Longitud máxima de cadenas mostradas en la vista VARIABLES o la consola de depuración. Las cuerdas más largas que esta longitud serán recortadas. El valor predeterminado es0
que significa que no se realiza ningún ajuste.java.debug.settings.enableHotCodeReplace
– Habilitar el reemplazo de código caliente para el código fuente de Java. Asegúrese de que la compilación automática no esté deshabilitada para VS Code Java . Consulte la página wiki para obtener más información sobre los usos y las limitaciones.
Te esperamos en los próximos artículos en donde hablaremos mas acerca de estos temas que hoy en día son de importancia e interés en el mundo de la tecnología.