Docker + JShell + Bash Alias Tip
- JShell with Docker
This post brings together two of my favorite things: bash aliases/functions and docker containers. To those who have not heard, Java 9 will include a new Java REPL called JShell. This is exciting in a number of ways. Newcomers to the language should find the learning curve less painful, and seasoned developers will gain a useful tool for exploring new libraries and interactive programming. JShell has already become a tool I use daily, and it has largely replaced my habit of writing disposable JUnit tests simply to explore a new library’s behavior or work out a specific function.
With some help from docker, you can easily start exploring JShell.
JShell with Docker
The following command uses the official openjdk docker hub image.
Bash Alias/Function Convenience
To get the most value out of your JShell experience, you will likely want to add library jars to your classpath. This can easily be accomplished using a volume mount and a small modification to our jshell command. For convenience, I have the following bash functions defined to make launching a JShell instance with a useful classpath convenient.