Java11新特性——JShell 常用命令大全及JShell 常用工具大全

                                 《 JShell 常用命令大全及JShell 常用工具大全 》

前言

使用 jshell 工具可以执行 Java 代码,从而立即获取结果。您可以输入 Java 定义(变量、方法、类等等),例如:int x = 8 或 Java 表达式,例如:x + x或 Java 语句或导入。而这些小块的 Java 代码称为 “ 代码片段 ” 。这些 jshell 工具命令还可以让您了解和控制您正在执行的操作,例如:/list 等操作。

 

重新审查以前输入的片段有四种方法:
1、重新审查上一个片段使用的方法为:/!
2、重新审查前/后N个片段:可以使用斜杠加减号加数字 n 的方式来实现重新审查之前的第 n 个片段,例如:/-4,示例内容如下:

jshell> 3 * 7
$1 ==> 21
|  已创建暂存变量 $1 : int

jshell> /!
3 * 7
$2 ==> 21
|  已创建暂存变量 $2 : int

jshell> int a;
a ==> 0
|  已创建 变量 a : int

jshell> /-1
int a;
a ==> 0
|  已修改 变量 a : int
|    更新已覆盖 变量 a : int

jshell> /-4
3 * 7
$5 ==> 21
|  已创建暂存变量 $5 : int

jshell>

3、可以使用片段 ID 或 ID 范围指定要重新审查的片段。
ID 范围使用通过连字符分隔的两个 ID 表示,例如:3-17
可以审查启动和错误片段,例如:s3-s9 或 e1-e4
可以审查任意数量的 ID 或 ID 范围,例如:/3-7 s4 14-16 e2

4、可以通过输入 ctrl-R 后跟要搜索的字符串,在历史记录中向后搜索。

 

Jshell 中 如何使用 片段 ID ?

输入的每个代码片段有自己的唯一片段 ID。即使再次输入相同的片段,它都会具有新 ID。对于普通片段,ID是一个增长的编号。对于失败且出错的片段,其片段 ID以 “e” 开头。对于启动中的片段,其 ID 以 “s” 开头。片段 ID 是在命令中引用片段的一种方法。例如,以下命令删除 ID 为 “ 5 ” 的片段:

jshell> /l

   1 : 3 * 7
   2 : 3 * 7
   4 : int a;
   5 : 3 * 7

jshell> /drop 5
|  已删除 变量 $5

jshell> /l

   1 : 3 * 7
   2 : 3 * 7
   4 : int a;

jshell>

 

要查看一个或多个片段的 ID,使用 “ /list ” 命令或使用缩写命令 “ /l ”。要查看所有片段的 ID,包括失败片段、启动片段和覆盖片段,使用 “ /list -all ” 命令或使用缩写命令 “ /l -a ”,示例内容如下:

jshell> /list -all

  s1 : import java.io.*;
  s2 : import java.math.*;
  s3 : import java.net.*;
  s4 : import java.nio.file.*;
  s5 : import java.util.*;
  s6 : import java.util.concurrent.*;
  s7 : import java.util.function.*;
  s8 : import java.util.prefs.*;
  s9 : import java.util.regex.*;
 s10 : import java.util.stream.*;
   1 : 3 * 7
   2 : 3 * 7
   3 : int a;
   4 : int a;
   5 : 3 * 7

jshell> /l -a

  s1 : import java.io.*;
  s2 : import java.math.*;
  s3 : import java.net.*;
  s4 : import java.nio.file.*;
  s5 : import java.util.*;
  s6 : import java.util.concurrent.*;
  s7 : import java.util.function.*;
  s8 : import java.util.prefs.*;
  s9 : import java.util.regex.*;
 s10 : import java.util.stream.*;
   1 : 3 * 7
   2 : 3 * 7
   3 : int a;
   4 : int a;
   5 : 3 * 7

jshell>

 

当然,您还可以使用连字符分隔开始 ID 和结束 ID,以此来引用 ID 范围。例如,“ 1-4 ” 与 “ 1 2 3 4 ” 相同。引用片段的所有命令将获取 ID、ID 范围以及片段名称的列表作为参数。这些命令包括:/list、/edit、/drop、/save、/vars、/methods、/types 和 /。示例内容如下:

     /list 1-4

     /edit 7-23

     /save s1-s4 3-8 foo 12 myfile

     /9-12 33

 

Jshell 中支持的快捷方式包括:

Jshell 支持的快捷方式

 

快速方式                                                         

说明

 

            

在输入 Java 标识符、jshell 工具命令或  jshell 工具命令参数(在某些情况下)的前几个字母后,按 键可以完成输入。如果有多个输入提示,则将显示可能的输入提示。将显示可用的适用文档。
Shift- v 在完整的表达式后面,按住 的同时按下 ,然后释放并按 “ v ”,此时表达式将转换为其类型基于表达式类型的变量声明。
Shift- m 完成表达式或语句之后,按住 的同时按住 ,然后释放并按住 “ m ”,则表达式或语句将转换为方法声明。如果是表达式,则返回类型基于表达式的类型。
Shift- i 在不可解析的标识符后面,按住 的同时按下 ,然后释放并按 "i",此时 jshell 工具将会建议可能的导入项,这将基于指定类路径的内容解析标识符。

 

JShell 常用命令:

JShell 常用命令
command 说明
/list [<名称或 id>|-all|-start] 列出所有您键入的源
/edit <名称或 id> 编辑键入的源
/drop <名称或 id> 删除键入的源
/save [-all|-history|-start] <文件> 将片段源保存到指定文件
/open 打开文件作为源输入
/vars [<名称或 id>|-all|-start] 列出已声明变量及其值
/methods [<名称或 id>|-all|-start] 列出已声明方法及其签名
/types [<名称或 id>|-all|-start] 列出类型声明
/imports 列出导入的项
/exit [] 退出 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 [-all] 键入的内容的历史记录
/help [|] 获取有关使用 jshell 工具的信息
/set editor|start|feedback|mode|prompt|truncation|format 设置配置信息
/? [|] 获取有关使用 jshell 工具的信息
/! 重新运行上一个片段 -- 请参阅 /help rerun
/ 按 ID 或 ID 范围重新运行片段 -- 参见 /help rerun
/- 重新运行以前的第 n 个片段 -- 请参阅 /help rerun

 

显示前面带有其片段 ID 的片段
command 说明
/list 列出您键入的或使用 /open 读取的当前活动的代码片段
/list -start 列出评估的启动片段
/list -all 列出所有片段,包括失败的片段、覆盖的片段、删除的片段和启动片段
/list <名称> 列出具有指定名称的片段(特别是活动片段)
/list 列出具有指定片段 ID 的片段。可以使用一个或多个 ID 或 ID 范围

 

在外部编辑器中编辑源的片段
command 说明
/edit <名称> 编辑具有指定名称的片段(特别是活动片段)
/edit 编辑具有指定片段 ID 的片段。可以使用一个或多个 ID 或 ID 范围
/edit -start 编辑启动片段。任何更改保持在此会话中,不影响启动设置
/edit -all 编辑所有片段,包括失败的片段、覆盖的片段、删除的片段和启动片段
/edit 编辑您键入或使用 /open 读取的当前活动的代码片段

 

删除片段 -- 使片段处于不活动状态
command 说明
/drop <名称> 删除具有指定名称的片段
/drop  删除具有指定片段 ID 的片段。可以使用一个或多个 ID 或 ID 范围

 

将指定的片段和/或命令保存到指定文件
command 说明
/save <文件>  将当前活动片段的源保存到文件
/save -all <文件> 将所有片段的源保存到文件,这包括覆盖的、失败的以及启动代码的源
/save -history <文件> 保存自启动 jshell 工具以来输入的所有命令和片段的顺序历史记录
/save -start <文件> 将当前启动定义保存到文件
/save <文件> 保存具有指定片段 ID 的片段。可以使用一个或多个 ID 或 ID 范围

 

列出已输入变量的类型、名称和值
command 说明
/vars 列出当前活动变量的类型、名称和值
/vars <名称> 列出具有指定名称的变量(特别是活动变量)
/vars 列出具有指定片段 ID 的变量。可以使用一个或多个 ID 或 ID 范围
/vars -start 列出已评估启动片段中的变量
/vars -all 列出所有变量,包括已失败变量、已覆盖变量、已删除变量和启动变量

 

列出已输入方法的名称、参数类型和返回类型
command 说明
/methods 列出当前活动方法的名称、参数类型和返回类型
/methods <名称> 列出具有指定名称的方法(特别是活动方法)
/methods 列出具有指定片段 ID 的方法。可以使用一个或多个 ID 或 ID 范围
/methods -start 列出已评估启动片段中的方法
/methods -all 列出所有片段,包括失败的片段、覆盖的片段、删除的片段和启动片段

 

列出已输入的类和接口
command 说明
/types 列出当前活动的类型声明
/types <名称> 列出具有指定名称的类型声明(特别是活动片段)
/types 列出具有指定片段 ID 的类型声明。可以使用一个或多个 ID 或 ID 范围
/types -start 列出已评估启动片段中的类型声明
/types -all 列出所有类型声明,包括已失败类型声明、已覆盖类型声明、已删除类型声明和启动类型声明

 

 

 

参考:

Oracle 官方的:《 JShell 用户指南 》


 好了,关于 Java11新特性——JShell 常用命令大全及JShell 常用工具大全 就写到这儿了,如果还有什么疑问或遇到什么问题欢迎扫码提问,也可以给我留言哦,我会一一详细的解答的。 
歇后语:“ 共同学习,共同进步 ”,也希望大家多多关注CSND的IT社区。


作       者: 华    仔
联系作者: [email protected]
来        源: CSDN (Chinese Software Developer Network)
原        文: https://blog.csdn.net/Hello_World_QWP/article/details/88820186
版权声明: 本文为博主原创文章,请在转载时务必注明博文出处!

你可能感兴趣的:(Java,JDK-11,新特性)