Java 9 REPL (JShell)
REPL (Read-Eval-Print Loop) stands for an interactive programming environment.
JShell is a new interactive programming environment tool added in Java 9. It allows you to execute Java statements without wrapping them in classes or methods. It is similar to Python's interpreter, where you can directly input expressions and see their results.
Running JShell
$ jshell
| Welcome to JShell -- Version 9-ea
| For an introduction type: /help intro
jshell>
Viewing JShell Commands
Enter /help
to view JShell-related commands:
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>
| edit a source entry referenced by name or id
| /drop <name or id>
| delete a source entry referenced by name or id
| /save [-all|-history|-start] <file>
| Save snippet source to a file.
| /open <file>
| open a file as source input
| /vars [<name or id>|-all|-start]
| list the declared variables and their values
| /methods [<name or id>|-all|-start]
| list the declared methods and their signatures
| /types [<name or id>|-all|-start]
| list the declared types
| /imports
| list the imported items
Executing JShell Commands
The /imports
command is used to view the imported packages:
jshell> /imports
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
jshell>
JShell Simple Calculations
The following example performs simple calculations in JShell:
jshell> 3+1
$1 ==> 4
jshell> 13%7
$2 ==> 6
jshell> $2
$2 ==> 6
jshell>
Creating and Using Functions in JShell
Create a function doubled()
that multiplies the input integer parameter by 2 and returns the result:
jshell> int doubled(int i){ return i*2;}
| created method doubled(int)
jshell> doubled(6)
$3 ==> 12
jshell>
Exiting JShell
Enter the /exit
command to exit JShell:
jshell> /exit
| Goodbye