《 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 中支持的快捷方式包括:
快速方式 | 说明 |
---|---|
<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 常用命令:
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 |
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 |
版权声明: | 本文为博主原创文章,请在转载时务必注明博文出处! |