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

Java REPL – jshell 基础知识

java repl
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 example

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 class

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。

发表回复 0

Your email address will not be published. Required fields are marked *