原文: https://www.jianshu.com/p/5fb406c6203f
从java9开始,java开始引入了类似于python的交互式 REPL(Read-Eval-Print Loop,读取-求值-输出 循环)工具。官方的表述如下:
The Java Shell tool (JShell) is an interactive tool for learning the Java programming language and prototyping Java code. JShell is a Read-Evaluate-Print Loop (REPL), which evaluates declarations, statements, and expressions as they are entered and immediately shows the results. The tool is run from the command line.
简而言之,使用 JShell,你可以输入代码片段并马上看到运行结果,然后就可以根据需要作出调整。官方的表述如下:
JShell helps you try out code and easily explore options as you develop your program. You can test individual statements, try out different variations of a method, and experiment with unfamiliar APIs within the JShell session. JShell doesn’t replace an IDE. As you develop your program, paste code into JShell to try it out, and then paste working code from JShell into your program editor or IDE.
接下来我们就开始初步的使用一下Jshell。首先我们要安装jdk,并且版本要高于9。我这里安装的是jdk10,并且配置好环境变量。
首先我们打开命令行,输入jshell,结果如下:jshell> /help | 键入 Java 语言表达式, 语句或声明。 | 或者键入以下命令之一: | /list [<名称或 id>|-all|-start] | 列出您键入的源 | /edit <名称或 id> | 编辑源条目 | /drop <名称或 id> | 删除源条目 | /save [-all|-history|-start] <文件> | 将片段源保存到文件 | /open <file> | 打开文件作为源输入 | /vars [<名称或 id>|-all|-start] | 列出已声明变量及其值 | /methods [<名称或 id>|-all|-start] | 列出已声明方法及其签名 | /types [<名称或 id>|-all|-start] | 列出类型声明 | /imports | 列出导入的项 | /exit [<integer-expression-snippet>] | 退出 jshell 工具 | /env [-class-path <路径>] [-module-path <路径>] [-add-modules <模块>] ... | 查看或更改评估上下文 | /reset [-class-path <路径>] [-module-path <路径>] [-add-modules <模块>]... | 重置 jshell 工具 | /reload [-restore] [-quiet] [-class-path <路径>] [-module-path <路径>]... | 重置和重放相关历史记录 -- 当前历史记录或上一个历史记录 (-restore) | /history | 您键入的内容的历史记录 | /help [<command>|<subject>] | 获取有关使用 jshell 工具的信息 | /set editor|start|feedback|mode|prompt|truncation|format ... | 设置配置信息 | /? [<command>|<subject>] | 获取有关使用 jshell 工具的信息 | /! | 重新运行上一个片段 -- 请参阅 /help rerun | /<id> | 按 ID 或 ID 范围重新运行片段 -- 参见 /help rerun | /-<n> | 重新运行以前的第 n 个片段 -- 请参阅 /help rerun | | 有关详细信息, 请键入 '/help', 后跟 | 命令或主题的名称。 | 例如 '/help /list' 或 '/help intro'。主题: | | intro | jshell 工具的简介 | id | 片段 ID 以及如何使用它们的说明 | shortcuts | 片段和命令输入提示, 信息访问以及 | 自动代码生成的按键说明 | context | /env /reload 和 /reset 的评估上下文选项的说明 | rerun | 重新评估以前输入片段的方法的说明
这就是Jshell提供给我们的所有命令。接下来,我们看一下刚才所有键入的源。
那么我们可以看到我们所执行的任何输入。我们可以删除,编辑,修改等等,这里就不在做说明了。接下里主要为大家演示三个命令。
第一个便是保存,/save。
/save [-all|-history|-start] <文件>
这
样我们就将我们所有的历史纪录保存到了d盘下面的jshell.txt文件。当然依然是unix的那句话,没有报错就证明执行成功。当然你也可以试一试其他两个参数。
第二个我们演示的命令便是,/open 。
打开一个输入源。/open<file>
可以看到我们文件中所写的这个函数,已经成功加入到jshell中了。
那么第三个我们要演示的命令是。/help context。
它是对/env /reload 和 /reset 的评估上下文选项的说明