Java REPL或jshell是在Java 9中引入的新工具。今天我们将了解Java REPL的基础知识,并在jshell界面上运行一些测试程序。
Java REPL
让我们首先尝试理解为什么在Java中加入了REPL支持,如果它很重要,为什么要在这么晚的版本中才加入。如你所知,由于其特性和优势,Scala已经变得非常流行,可用于开发从小型到大型应用程序。它支持多范式(面向对象和函数式编程)和REPL。Oracle公司正在尝试将Scala的大部分特性整合到Java中。他们已经在Java 8中作为一部分整合了一些函数式编程特性,比如Lambda表达式。Scala的最佳特性之一是REPL(Read-Evaluate-Print-Loop)。它是一个命令行界面和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工具的滋味了。
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