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 和 /<id>。示例内容如下:

     /list 1-4

     /edit 7-23

     /save s1-s4 3-8 foo 12 myfile

     /9-12 33

 

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

Jshell 支持的快捷方式

 

快速方式                                                         

说明

 

<tab>            

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

 

JShell 常用命令:

JShell 常用命令
command说明
/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 [-all]键入的内容的历史记录
/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

 

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

 

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

 

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

 

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

 

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

 

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

 

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

 

 

 

参考:

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


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


作       者:华    仔
联系作者:who.seek.me@java98k.vip
来        源:CSDN (Chinese Software Developer Network)
原        文:https://blog.csdn.net/Hello_World_QWP/article/details/88820186
版权声明:本文为博主原创文章,请在转载时务必注明博文出处!
  • 2
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值