Java REPL – jshell

Java REPL o jshell es la nueva herramienta introducida en Java 9. Hoy veremos los conceptos básicos de Java REPL y ejecutaremos algunos programas de prueba en la interfaz jshell.

Java REPL

Comencemos por entender por qué se agregó el soporte REPL en Java y por qué en una versión tan tardía. Como sabes, Scala se ha vuelto muy popular para desarrollar aplicaciones de pequeña y gran escala debido a sus características y ventajas. Admite múltiples paradigmas (Programación Orientada a Objetos y Programación Funcional) y REPL. Oracle Corporation está tratando de integrar la mayoría de las características de Scala en Java. Ya han integrado algunas características de programación funcional como parte de Java 8, como las expresiones lambda. Una de las mejores características de Scala es REPL (Read-Evaluate-Print-Loop). Es una interfaz de línea de comandos e intérprete de Scala para ejecutar programas Scala. Es muy fácil usar Scala REPL para aprender los conceptos básicos de la programación en Scala e incluso ejecutar pequeños códigos de prueba. Debido al REPL de Scala y sus beneficios para reducir la curva de aprendizaje y facilitar la ejecución de códigos de prueba, se introdujo Java REPL en Java 9.

Java REPL – jshell

La aplicación de Java REPL se llama jshell. JShell significa Java Shell. jshell es una herramienta interactiva para ejecutar y evaluar programas simples en Java, como declaraciones de variables, expresiones, programas simples, etc. Abre la línea de comandos y verifica la versión de Java para asegurarte de que tienes Java 9 o superior, solo así podrás usar jshell. Dado que jshell no necesita ningún entorno de desarrollo integrado (IDE) ni editores adicionales para ejecutar programas simples en Java, es muy útil tanto para principiantes en Java básico como para expertos que lo utilizan para aprender y evaluar nuevas características y realizar pequeñas pruebas de código.

Java REPL – fundamentos de jshell

Podemos acceder a Java REPL utilizando el comando jshell disponible como se muestra en la imagen a continuación. Ahora es el momento de ejecutar algunos ejemplos simples de Java para experimentar con la herramienta REPL de Java.

pankaj:~ pankaj$ jshell 
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell> 

jshell> System.out.println("Hello World");
Hello World

jshell> String str = "Hello JournalDev Users"
str ==> "Hello JournalDev Users"

jshell> str
str ==> "Hello JournalDev Users"

jshell> System.out.println(str)
Hello JournalDev Users

jshell> int counter = 0
counter ==> 0

jshell> counter++
$6 ==> 0

jshell> counter
counter ==> 1

jshell> counter+5
$8 ==> 6

jshell> counter
counter ==> 1

jshell> counter=counter+5
counter ==> 6

jshell> counter
counter ==> 6

jshell> 

Como se muestra en los ejemplos anteriores de Java REPL, es muy fácil desarrollar un programa “Hola Mundo”. No necesitamos definir una “clase pública” y el método public static void main(String[] args) solo para imprimir un mensaje. NOTA: No necesitamos usar “puntos y comas” para declaraciones simples como se muestra en el diagrama anterior.

Java REPL – ejecutar clase

También podemos definir y ejecutar métodos de clase en el shell de Java REPL.

jshell> class Hello {
   ...> public static void sayHello() {
   ...> System.out.print("Hello");
   ...> }
   ...> }
|  created class Hello

jshell> Hello.sayHello()
Hello
jshell> 

Java REPL – Ayuda y Salir

Para obtener la sección de ayuda de la herramienta jshell, use el comando /help. Para salir de jshell, use el comando /exit.

jshell> /help
|  Type a Java language expression, statement, or declaration.
|  Or type one of the following commands:
|  /list [<name or id>|-all|-start]
|  	list the source you have typed
|  /edit <name or id>
...

jshell> /exit
|  Goodbye
pankaj:~ pankaj$ 

También podemos usar el comando Ctrl + D para salir de la herramienta jshell. Eso es todo sobre los conceptos básicos de Java REPL y la herramienta jshell, lee más en jshell – java shell. Referencia: JEP 222.

Source:
https://www.digitalocean.com/community/tutorials/java-repl-jshell