Java REPL – jshell

时间:2020-02-23 14:36:48  来源:igfitidea点击:

Java REPL或者jshell是Java 9中引入的新工具。
今天,我们将研究Java REPL基础知识,并在jshell接口中运行一些测试程序。

Java REPL

首先,让我们尝试理解为什么在Java中添加了REPL支持,如果那么重要,那么为什么要在这么晚的版本中发布。

如您所知,Scala的功能和优势已成为从小型应用到大型应用的非常受欢迎的开发。
它支持多范式(面向对象和函数式编程)和REPL。

Oracle Corporation正在尝试将大多数Scala功能集成到Java中。
他们已经集成了一些功能性编程功能作为Java 8的一部分,例如lambda表达式。

Scala的最佳功能之一是REPL(读取-评估-打印循环)。
这是一个命令行界面和Scala解释器,用于执行Scala程序。
使用Scala REPL可以很轻松地学习scala编程的基础知识,甚至可以运行小的测试代码。

由于使用了Scala REPL,它在减少学习曲线和简化运行测试代码方面具有很多优势,因此Java REPL引入了Java 9。

Java REPL – jshell

Java REPL应用程序名称为jshell
JShell代表Java Shell。
jshell是一种交互式工具,用于执行和评估Java简单程序,例如变量声明,语句,表达式,简单程序等。

打开命令提示符并检查Java版本以确保您具有Java 9或者更高版本,然后只有您可以使用jshell。

由于jshell不需要任何IDE或者另外的编辑器即可执行简单的Java程序,因此对于Java核心和专家来说,使用它来学习和评估新功能和小型测试代码非常有用。

Java REPL – jshell基础

我们可以使用jshell命令访问Java REPL,如下图所示。

现在,是时候执行一些简单的Java示例来了解Java REPL工具的flavor 了。

hyman:~ hyman$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 theitroad Users"
str ==> "Hello theitroad Users"

jshell> str
str ==> "Hello theitroad Users"

jshell> System.out.println(str)
Hello theitroad Users

jshell> int counter = 0
counter ==> 0

jshell> counter++
 ==> 0

jshell> counter
counter ==> 1

jshell> counter+5
 ==> 6

jshell> counter
counter ==> 1

jshell> counter=counter+5
counter ==> 6

jshell> counter
counter ==> 6

jshell>

如上面的Java REPL示例所示,开发" Hello World"程序非常容易。
我们不需要定义"公共类"和公共静态void main(String [] args)方法来仅打印一条消息。

注意:如上图所示,对于简单的语句,我们不需要使用"分号"。

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
hyman:~ hyman$

我们也可以使用Ctrl + D命令退出jshell工具。