DEV Community

Cover image for Java Shell Tool
Carolina Dias Fonseca
Carolina Dias Fonseca

Posted on • Updated on

Java Shell Tool

Estava fazendo a trilha Java Explorer da Oracle e lá, pela primeira vez, ouvi falar sobre o Jshell e resolvi escrever sobre ele, porque achei bem legal o que ele faz.

O Java Shell Tool (Jshell) é uma ferramenta interativa para aprender a programar em Java e prototipar código. Jshell é é um Read-Evaluate-Print Loop (REPL). Isso significa que ele vai ler (Read) e avaliar (Evaluate) os comandos e mostrar (Print) o resultado e então voltar ao início para o próximo input. O REPL faz o seu tempo de execução mais tangível e te permite testar hipóteses sobre isso.

O JShell é utilizado via linha de comando, assim você pode fazer o input de dados no programa um por um e ver o resultado imediatamente, além da possibilidade de fazer os ajustes que forem necessários.

O desenvolvimento de um programa Java, normalmente envolve o processo a seguir:

  • Escrever o programa;
  • Compilar e corrigir potenciais erros
  • Rodar o programa
  • Descobrir o que deu errado
  • Editar
  • Repetir o processo

JShell auxiliar no processo de experimentação do código de forma muito mais simples. Te permite testar argumentos, testar variações de métodos e experimentar API's que você ainda não sabe usar no dia a dia.

JShell é melhor do que uma IDE?

Não, o Jshell não substitui o uso de uma IDE, ele apenas facilita e agilia o processo de aprendizado tanto sobre o Java como validação de hipóteses, conforme já mencionado anteriormente.

Conforme você vai escrevendo o seu código, você pode colar trecho do código no JShell e testar ou então copiar o código que está testando no JShell e colar na sua IDE.

Usando o JShell

O JShell faz parte do JDK9 e superiores, portanto, é necessário que tenha, ao menos, o JDK9 instalado em seu computador.

A partir disso, basta ir ao terminar e digitar jshell

Inicializando o Jshell

Exemplo prático:

Trechos traduzidos de:

Documentação Oracle

FreeCodeCamp: This is why your read-eval-print-loop is so amazing

Discussion (0)