Java 9 has added the following new features:
- Java 9 REPL (JShell)
- Factory methods for immutable List, Set, Map, and Map.Entry
- Private methods in Interfaces
- Java 9 module system
- Process API improvements
- Try with Resources improvement
- CompletableFuture API improvements
- Reactive Streams
I am going to explore JShell in this blog.
Steps to follow:
- Download Java 9 from scratch and install.
- Run the shell.
- Get help from Java 9's REPL.
- Run a few calculations in JShell.
- Define a function and use it.
Step 1: Download Java 9
- Go to: http://jdk.java.net/9/ and download on the jdk 9.
- Verify you have it installed or not.
[anijhawa@anijhawa ~]$ java -version java version "9-ea" Java(TM) SE Runtime Environment (build 9-ea+165) Java HotSpot(TM) 64-Bit Server VM (build 9-ea+165, mixed mode)
Step 2: Run JShell
To connect jshell, type jshell in the terminal.
[anijhawa@anijhawa ~]$ jshell | Welcome to JShell -- Version 9-ea | For an introduction type: /help intro jshell>
Step 3: Get Help
- Type /help on the terminal and get a list of things can do with JShell:
jshell> /help | Type a Java language expression, statement, or declaration. | Or type one of the following commands: | /list [<name or id>] | 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] <file> | Save snippet source to a file. | /open <file> | open a file as source input | /vars [<name or id>] | list the declared variables and their values | /methods [<name or id>] | list the declared methods and their signatures | /types [<name or id>] | list the declared types | /imports | list the imported items | /exit | exit jshell | /env [-class-path <path>] [-module-path <path>] [-add-modules <modules>] ... | view or change the evaluation context | /reset [-class-path <path>] [-module-path <path>] [-add-modules <modules>]... | reset jshell | /reload [-restore] [-quiet] [-class-path <path>] [-module-path <path>]... | reset and replay relevant history -- current or previous (-restore) | /history | history of what you have typed | /help [<command>] | get information about jshell | /set editor|start|feedback|mode|prompt|truncation|format ... | set jshell configuration information | /? [<command>] | get information about jshell | /! | re-run last snippet | /<id> | re-run snippet by id | /-<n> | re-run n-th previous snippet | | For more information type '/help' followed by the name of a | command or a subject. | For example '/help /list' or '/help intro'. | | Subjects: | | intro | an introduction to the jshell tool | shortcuts | a description of keystrokes for snippet and command completion, | information access, and automatic code generation | context | the evaluation context options for /env /reload and /reset
- From /help command one of interesting command/imports, please try this and see the by default imports below:
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.*
Step 4: Do some basic calculations.
jshell> 2+2 $1 ==> 4 jshell> 4%7 $2 ==> 4 jshell> 14&3 $3 ==> 2 jshell> $2// we got variable number two! $2 ==> 4
Step 5: Multiply Function Code
Let's define a function that takes an int and square it, then let's call it.
jshell> int squareThis(int i){return i*i;} | created method squareThis(int) jshell> squareThis(5) $6 ==> 25
To build your Java EE Microservice visit WildFly Swarm and download the cheat sheet.
Last updated: November 15, 2018