JShell la herramienta REPL incorporada en Java 9

Publicado por pico.dev el , actualizado el .
blog-stack java planeta-codigo programacion
Comentarios

Java

Una de las novedades de Java 9 es la incorporación de una herramienta Read-Evaluation-Print-Loop o REPL similar a las disponibles en otros lenguajes dinámicos para permitir evaluar pequeños ejemplos de código, hacer pruebas o como herramienta para alguien que esté aprendiendo a programar sin la necesidad de utilizar un entorno integrado de desarrollo, una herramienta de construcción y los varios archivos y comandos necesarios para compilar y ejecutar el código Java.

El comando de la herramienta JShell es jshell que inicia un símbolo del sistema donde empezar a introducir las expresiones, se sale de jshell con el comando /exit.

JShell

Se pueden crear variables, crear y modificar definiciones de métodos y clases. Cada una de estas expresiones crea un snippet de código que pueden listarse con el comando /list. Al introducir las expresiones se soporta completado y asistencia de código con la tecla tabulador como ayuda para saber que métodos tiene un objeto.

Se pueden crear clases y métodos como en el ejemplo de la serie de Fibonacci implementada con un Stream de la cual se muestran los elementos de la serie menores que el número 100.

Expresiones y asistencia de código
Serie de Fibonacci con un Stream en un método

Para diferenciar las expresiones de código de los comandos estos últimos son precedidos por el caracter /. Hay varios como los ya citados para listar los snippets de código y salir de jshell, otros son para listar las definiciones de variables con /vars, métodos con /methods, tipos con /types e imports con /imports. La lista completa de comandos puede obtenerse pulsando la tecla tabulador después de la barra de comando.

Comandos

Para los snippets multilínea o algo complejos puede utilizarse un editor externo con el comando /edit. El editor de nuestra preferencia se establece con el comando /set.

También se pueden añadir módulos o librerías para usar las clases y tipos que contengan con el comando /env y las opciones –add-modules –module-path y –class-path. Los snippets creados en una sesión pueden guardarse en un archivo con el comando /save y ser cargados al inicio de JShell o con el comando /open.

En la guía oficial de JShell se comenta algunas opciones más de esta nueva herramienta.

Yo apoyo al software libre