JShell(Java9新特性)

JShell简介 JavaShell工具(JShell)是一种交互式工具,用于学习Java编程语言和Java代码原型。JShell是一个Read-Evaluate-Print循环(REPL),它在输入声明、语句和表达式时对它们进行求值,并立即显示结果。该工具从命令行运行。JShell是在Java9中引入的,因此不能在Java8中使用。

null

为什么要使用JShell? Jshell减少了运行Java程序和测试业务逻辑所需的所有工作。如果我们不使用Jshell,那么Java程序的创建包括以下步骤。

  1. 打开编辑器并编写程序
  2. 保存程序
  3. 编译程序
  4. 如果有编译时错误,请编辑
  5. 运行程序
  6. 如果出现任何运行时错误,请编辑
  7. 重复这个过程

Jshell不需要上述步骤。我们可以评估语句、方法和类,甚至可以在不创建类的情况下编写hello程序。 JShell帮助您在开发程序时尝试代码并轻松探索选项。您可以在JShell会话中测试单个语句,尝试方法的不同变体,并使用不熟悉的API进行实验。JShell不会取代IDE。在开发程序时,将代码粘贴到JShell中进行尝试,然后将JShell中的工作代码粘贴到程序编辑器或IDE中。

启动和停止JShell 要启动Jshell,首先必须安装Java 9,然后在Linux中打开terminal或在windows中打开命令提示符,然后键入Jshell。它将启动jshell会话,并向控制台显示欢迎消息。

图片[1]-JShell(Java9新特性)-yiteyi-C++库

你好Java消息

要显示简单的“Hello Java”消息,请在不创建类的情况下编写print命令,然后按enter键。

图片[2]-JShell(Java9新特性)-yiteyi-C++库

要退出JShell,请输入命令:

jshell> /exit|  Goodbye

片段 JShell接受Java语句;变量、方法和类定义;进口;还有表情。这些Java代码片段被称为代码片段。 在提示符处输入以下示例语句,并查看显示的输出:

jshell> int x = 11x ==> 11|  created variable x : int

首先,显示结果。可以这样理解:变量x的值为45。由于您处于详细模式,因此还会显示发生的情况的描述。信息性消息以竖条开始。请注意,创建的变量的名称和类型都会显示出来。 当输入没有命名变量的表达式时,会创建一个临时变量,以便以后可以引用该值。下面的示例显示了表达式和方法结果的暂存值。该示例还显示了当代码段需要多行输入才能完成时使用的继续提示(…>):

jshell> 8 + 8$3 ==> 16|  created scratch variable $3 : intjshell> String double(String s) {   ...>    return s + s;   ...> }|  created method double(String)jshell> double("Geeks")$5 ==> "GeeksGeeks"|  created scratch variable $5 : String

例外情况 在异常回溯中,反馈标识代码段以及代码段中发生异常的位置。

输入JShell的代码中的位置显示为#ID:line number,其中snippet ID是/list命令显示的数字,line number是snippet中的行号。在以下示例中,异常发生在方法第二行的片段1中,即divide()方法:

jshell> int half(int x, int y) {   ...> return x / y;   ...> }|  created method divide(int,int)jshell> divide(5, 0)|  java.lang.ArithmeticException thrown: / by zero|        at divide (#1:2)|        at (#2:1)                             jshell> /list                                                               1 : int divide(int x, int y) {           return x / y;       }   2 : divide(5, 0)

命令简介 JShell命令控制环境并在会话中显示信息。

命令与代码段的区别在于前导正斜杠(/)。有关当前变量、方法和类型的信息,请使用/vars、/methods和/types命令。对于输入的代码段列表,请使用/list命令。下面的示例显示了基于这些示例的这些命令

jshell> /vars|    int x = 8|    int $3 = 16|    String $5 = "GeeksGeeks"jshell> /methods|    double(String)Stringjshell> /list   1 : System.out.println("Hi");   2 : int x = 8;   3 : 8 + 8   4 : String double(String s) {         return s + s;       }   5 : double("Ocean")

请注意,将显示变量的类型和值以及方法的类型签名。

JShell有一个默认的启动脚本,在JShell启动之前自动执行,这样您就可以快速开始工作。除非使用/list-start或/list-all命令请求,否则不会列出启动脚本中的条目:

jshell> /list -all  s1 : import java.util.*;  s2 : import java.io.*;  s3 : import java.math.*;  s4 : import java.net.*;  s5 : import java.util.concurrent.*;  s6 : import java.util.prefs.*;  s7 : import java.util.regex.*;   1 : System.out.println("Hi");   2 : int x = 8;   3 : 8 + 8   4 : String double(String s) {         return s + s;       }   5 : double("GeeksGeeks")

默认启动脚本由几个常见导入组成。您可以使用/set start命令对启动条目进行个性化设置。有关此命令的信息,请输入/help/set start。/save-start命令将当前启动脚本保存为自己启动脚本的起点。

其他重要命令包括/exit以离开JShell、/save以保存代码段和/open以输入文件中的代码段。

输入/help以获取JShell命令的列表。

参考资料- https://docs.oracle.com/javase/9/tools/jshell.htm

© 版权声明
THE END
喜欢就支持一下吧
点赞5 分享