Java REPL – jshell

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 不需要任何集成开发环境或额外编辑器来执行简单的 Java 程序,因此对于初学者和专家来说,它非常有用,可以用来学习和评估新功能和小型测试代码。

Java REPL – jshell 基础知识

我们可以通过使用如下所示的 jshell 命令来访问 Java REPL。 现在,是时候执行几个简单的 Java 示例,以了解 Java REPL 工具的用法了。

pankaj:~ pankaj$ 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示例表明,开发“Hello World”程序非常简单。我们不需要定义“public class”和public static 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
pankaj:~ pankaj$ 

我们也可以使用Ctrl + D命令退出jshell工具。这就是关于Java REPL和jshell工具基础知识的全部内容,更多内容请阅读jshell – java shell。参考:JEP 222

Source:
https://www.digitalocean.com/community/tutorials/java-repl-jshell