JShell (nueva característica de Java 9)

Introducción a JShell 
La herramienta Java Shell (JShell) es una herramienta interactiva para aprender el lenguaje de programación Java y crear prototipos de código Java. JShell es un ciclo de lectura-evaluación-impresión (REPL), que evalúa declaraciones, declaraciones y expresiones a medida que se ingresan y muestra los resultados de inmediato. La herramienta se ejecuta desde la línea de comandos. JShell se introdujo en Java 9 y, por lo tanto, no se puede usar en Java 8. 

¿Por qué usar JShell?  
Jshell ha reducido todos los esfuerzos necesarios para ejecutar un programa Java y probar una lógica empresarial. Si no usamos Jshell, la creación del programa Java implica los siguientes pasos.

  1. Abra el editor y escriba el programa.
  2. guardar el programa
  3. Compilar el programa
  4. Editar si hay algún error de tiempo de compilación
  5. Ejecuta el programa
  6. Editar si hay algún error de tiempo de ejecución
  7. Repita el proceso

Jshell no requiere los pasos anteriores. Podemos evaluar declaraciones, métodos y clases, incluso podemos escribir un programa hola sin crear una clase. 
JShell lo ayuda a probar el código y explorar fácilmente las opciones a medida que desarrolla su programa. Puede probar declaraciones individuales, probar diferentes variaciones de un método y experimentar con API desconocidas dentro de la sesión de JShell. JShell no reemplaza un IDE. A medida que desarrolla su programa, pegue el código en JShell para probarlo y luego pegue el código de trabajo de JShell en su editor de programa o IDE. 

Iniciar y detener JShell 
Para iniciar Jshell, primero debemos tener instalado Java 9, luego abrir la terminal en Linux o el símbolo del sistema en Windows y escribir jshell. Comenzará la sesión de jshell y mostrará un mensaje de bienvenida a la consola. 
 

Mensaje de Hola Java 

Para mostrar un mensaje simple de «Hola Java», escriba el comando de impresión sin crear una clase y presione Intro. 
 

Para salir de JShell, ingrese el comando: 

jshell> /exit
|  Goodbye

Snippets 
JShell acepta sentencias de Java; definiciones de variables, métodos y clases; importaciones; y expresiones. Estas piezas de código Java se denominan fragmentos. 
Ingrese la siguiente declaración de muestra cuando se le solicite y revise el resultado que se muestra: 
 

jshell> int x = 11
x ==> 11
|  created variable x : int

En primer lugar, se muestra el resultado. Lea esto como: la variable x tiene el valor 45. Debido a que está en modo detallado, también se muestra una descripción de lo que ocurrió. Los mensajes informativos comienzan con una barra vertical. Observe que se muestran tanto el nombre como el tipo de la variable creada. 
Cuando se ingresa una expresión que no tiene una variable con nombre, se crea una variable temporal para que se pueda hacer referencia al valor más adelante. El siguiente ejemplo muestra valores temporales para una expresión y para los resultados de un método. El ejemplo también muestra el indicador de continuación (…>) que se usa cuando un fragmento requiere más de una línea de entrada para completarse: 

jshell> 8 + 8
$3 ==> 16
|  created scratch variable $3 : int

jshell> String double(String s) {
   ...>    return s + s;
   ...> }
|  created method double(String)

jshell> double("Geeks")
$5 ==> "GeeksGeeks"
|  created scratch variable $5 : String

Excepciones 
En un seguimiento de excepción, los comentarios identifican el fragmento y la ubicación dentro del fragmento donde ocurrió la excepción. 

La ubicación dentro del código ingresado en JShell se muestra como #ID:número de línea, donde el ID del fragmento es el número que muestra el comando /list y el número de línea es el número de línea dentro del fragmento. En el siguiente ejemplo, la excepción ocurre en el fragmento 1, que es el método divide(), en la segunda línea del método: 

jshell> int half(int x, int y) {
   ...> return x / y;
   ...> }
|  created method divide(int,int)

jshell> divide(5, 0)
|  java.lang.ArithmeticException thrown: / by zero
|        at divide (#1:2)
|        at (#2:1)
                             
jshell> /list
                                                            
   1 : int divide(int x, int y) {
           return x / y;
       }
   2 : divide(5, 0)

Introducción a los comandos 
Los comandos de JShell controlan el entorno y muestran información dentro de una sesión. 

Los comandos se distinguen de los fragmentos por una barra inclinada (/). Para obtener información sobre las variables, métodos y tipos actuales, utilice los comandos /vars, /methods y /types. Para obtener una lista de fragmentos ingresados, use el comando /list. El siguiente ejemplo muestra estos comandos basados ​​en los ejemplos 
 

jshell> /vars
|    int x = 8
|    int $3 = 16
|    String $5 = "GeeksGeeks"

jshell> /methods
|    double(String)String

jshell> /list

   1 : System.out.println("Hi");
   2 : int x = 8;
   3 : 8 + 8
   4 : String double(String s) {
         return s + s;
       }
   5 : double("Ocean")

Observe que se muestran los tipos y valores de las variables y la signatura de tipo de los métodos. 

JShell tiene una secuencia de comandos de inicio predeterminada que se ejecuta de forma silenciosa y automática antes de que se inicie JShell, para que pueda ponerse a trabajar rápidamente. Las entradas del script de inicio no se enumeran a menos que las solicite con el comando /list -start o /list -all: 
 

jshell> /list -all

  s1 : import java.util.*;
  s2 : import java.io.*;
  s3 : import java.math.*;
  s4 : import java.net.*;
  s5 : import java.util.concurrent.*;
  s6 : import java.util.prefs.*;
  s7 : import java.util.regex.*;
   1 : System.out.println("Hi");
   2 : int x = 8;
   3 : 8 + 8
   4 : String double(String s) {
         return s + s;
       }
   5 : double("GeeksGeeks")

El script de inicio predeterminado consta de varias importaciones comunes. Puede personalizar sus entradas de inicio con el comando /set start. Para obtener información sobre este comando, ingrese /help /set start. El comando /save -start guarda el script de inicio actual como punto de partida para su propio script de inicio. 

Otros comandos importantes incluyen /exit para salir de JShell, /save para guardar sus fragmentos y /open para ingresar fragmentos de un archivo. 

Ingrese /ayuda para obtener una lista de los comandos de JShell. 

Referencias: https://docs.oracle.com/javase/9/tools/jshell.htm
 

Publicación traducida automáticamente

Artículo escrito por keep_silent y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *