Java REPL(交互式解释器)- jshell
Java REPL 或者 jshell 是在 Java 9 中引入的新工具。今天,我们将重点介绍 Java REPL 的基础知识,并在 jshell 接口中运行一些测试程序。
Java REPL 是即时运行环境的一个版本,它允许用户直接在命令行中编写和运行 Java 代码。
让我们首先试着理解为什么Java中添加了REPL支持,如果这样重要的话,为什么这么晚才发布。如你所知,由于其特性和优点,Scala已经非常流行用于开发小到大规模的应用程序。它支持多范式(面向对象和函数式编程)和REPL。Oracle公司正在尝试将大部分Scala的特性整合到Java中。他们已经作为Java 8的一部分整合了一些函数式编程特性,比如lambda表达式。Scala的最好特性之一就是REPL(读取-求值-打印-循环)。它是一个命令行界面和Scala解释器,用于执行Scala程序。使用Scala REPL很容易学习Scala编程的基础知识,甚至运行小的测试代码。由于Scala REPL及其减少学习曲线和便于运行测试代码的好处,Java在Java 9中引入了REPL。
Java的REPL – jshell
Java REPL – jshell 基础知识
james:~ james$ jshell
| Welcome to JShell -- Version 9
| For an introduction type: /help intro
jshell>
jshell> System.out.println("Hello World");
Hello World
jshell> String str = "Hello JournalDev Users"
str ==> "Hello JournalDev Users"
jshell> str
str ==> "Hello JournalDev Users"
jshell> System.out.println(str)
Hello JournalDev Users
jshell> int counter = 0
counter ==> 0
jshell> counter++
$6 ==> 0
jshell> counter
counter ==> 1
jshell> counter+5
$8 ==> 6
jshell> counter
counter ==> 1
jshell> counter=counter+5
counter ==> 6
jshell> counter
counter ==> 6
jshell>
Java REPL – 执行类
我们也可以在Java REPL Shell中定义和执行类方法。
jshell> class Hello {
...> public static void sayHello() {
...> System.out.print("Hello");
...> }
...> }
| created class Hello
jshell> Hello.sayHello()
Hello
jshell>
Java REPL – 帮助和退出
要获取jshell工具的帮助部分,请使用/help命令。要退出jshell,请使用/exit命令。
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>
...
jshell> /exit
| Goodbye
scdev:~ scdev$
我们还可以使用Ctrl + D命令从jshell工具中退出。这就是关于Java REPL和jshell工具基础的全部内容,请在jshell – java shell上阅读更多信息。参考:JEP 222。