Java Shell Tool (2024) | TechGeekNext

Java Shell Tool (2024)

What is Jshell?

It's an interactive Java Shell tool that enables us to execute Java code from the shell and instantly displays output. JShell is the REPL(Read Evaluate Print Loop) tool, run from command line.
In most programming languages, shell or REPL are a well recognized tool. Generally, these are popular for scripting languages like Python or Node, but more recently JVM languages such as Clojure and Group have also been adopted. Finally, the launch of Java 9 introduced this Java-language shell feature in the form of JShell.

Getting Started with JShell

Starting JShell - jshell -v Open the jshell from the command prompt in verbose mode.
D:\>jshell -v
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro
Stopping JShell - jshell -v
jshell> /exit
|  Goodbye


Any information comes after '|'(pipe) symbol, it gives information to user from jshell.

Simple Examples

jshell> 20+30 $1 ==> 50
|  created scratch variable $1 : int

jshell> 50-30*7 $2 ==> 140
|  created scratch variable $2 : int 

Default Imports

The following packages are available to the Jshell by default and we don't have to import them. We can search with the /imports command.
jshell> /imports
|    import*
|    import java.math.*
|    import*
|    import java.nio.file.*
|    import java.util.*
|    import java.util.concurrent.*
|    import java.util.function.*
|    import java.util.prefs.*
|    import java.util.regex.*
|    import*

Arraylist Example:

 jshell> Arraylist<String> li=new Arraylist<String>();
 li ==> []

jshell> li.add("John");li.add("Berry");li.add("Teena");
$2 ==> true
$3 ==> true
$4 ==> true

jshell> li
li ==> [John, Berry, Teena]

jshell> li.isEmpty()
$6 ==> falise

jshell> li.get(2)
$7 ==> "Teena"

jshell> li.get(10)
|  java.lang.IndexOutOfBoundsException thrown: Index 10 out-of-bounds for length 3

jshell> li.size()
$9 ==> 3

jshell> if(li.isEmpty()) System.out.printlin("Empty");else System.out.println("Not Empty");
Not Empty

jshell> for(int i =0;i<10;i=i+2)System.out.println(i)

Exception Example

In our program we have to handle either try-catch or by throwing keyword if there is a chance of checked exceptions. If not, we will get an error in compile time.

Java Program
 class HelloWorld
     public static void main(String[] args)
      PrintWriter printWriter=new PrintWriter("notes.txt");
      printWriter.println("Hello World");
Now compile the program using javac, it will throw FileNotFound Exception as given below. error: unreported exception FileNotFoundException
Java Program in Jshell: Here, in Jshell we don't have to write public class name and main, just provide the main business logic. In Jshell, we dont't have write try-catch or throw explicitly, Jshell do it by itself.
Internally jshell use java compiler to check syntax.
jshell> PrintWriter printWriter=new PrintWriter("notes.txt");
printWriter.println("Hello World");
printWriter ==>