美文网首页
Java 9:REPL - jshell 详解一

Java 9:REPL - jshell 详解一

作者: 愚者路飞 | 来源:发表于2020-04-27 14:05 被阅读0次

    Java REPL或&jshellJava 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,它在减少学习曲线和简化测试代码运行方面具有诸多优势,因此Oracle 在Java 9 中引入了REPL。

    Java REPL – jshell

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

    打开命令提示符并检查Java版本以确保您具有Java 9或更高版本,只有这样才能够使用jshell

    ➜  ~ java --version
    java 11.0.5 2019-10-15 LTS
    Java(TM) SE Runtime Environment 18.9 (build 11.0.5+10-LTS)
    Java HotSpot(TM) 64-Bit Server VM 18.9 (build 11.0.5+10-LTS, mixed mode)
    ➜  ~
    

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

    Java REPL – jshell 开始

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

    ➜  ~ jshell
    |  Welcome to JShell -- Version 11.0.5
    |  For an introduction type: /help intro
    
    jshell>
    

    现在,我们可以执行一些简单的Java示例来了解Java REPL工具的功能了。

    ➜  ~ jshell
    |  Welcome to JShell -- Version 11.0.5
    |  For an introduction type: /help intro
    
    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程序非常的容易。我们不再需要定义pubic classpublic static void main(String[] args)方法来仅打印一条如此简单的消息了。

    如上例演示的那样,对于简单的语句,我们不需要使用分号

    Java REPL – 执行 class

    我们还可以在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>
    |   edit a source entry
    ...
    jshell> /exit
    |  Goodbye
    ➜  ~
    

    我们还可以使用Ctrl + D命令退出jshell命令行。
    以上就是关于Java REPLjshell工具基础的全部内容,更多内容请参见jshell – Java shell详解二

    参考:JEP 222

    原文链接:https://www.journaldev.com/9879/java-repl-jshell

    相关文章

      网友评论

          本文标题:Java 9:REPL - jshell 详解一

          本文链接:https://www.haomeiwen.com/subject/kjmywhtx.html