JDK工具包:jshell
JDK工具包:jshell
简介
使用 jshell 工具可以执行 Java 代码,从而立即获取结果。
您可以输入 Java 定义(变量、方法、类等等)
例如:
int x = 8
或 Java 表达式,例如:
x + x
或 Java 语句或导入。
这些小块的 Java 代码称为“片段”。
退出:
/exit
片段 ID
输入的每个代码片段有自己的唯一片段 ID。即使再次输入相同的片段,它都会具有新 ID。
对于普通片段,ID是一个增长的编号。对于失败且出错的片段,其片段 ID
以 "e" 开头。对于启动中的片段,其 ID 以 "s" 开头。
您还可以使用连字符分隔开始 ID 和结束 ID,以此来引用 ID 范围。例如,'1-4' 与 '1 2 3 4' 相同。
要查看一个或多个片段的 ID
/list ID编号
要查看所有片段的 ID,包括失败片段、启动片段和覆盖片段,请使用
/list -all
编辑的说明
jshell 工具提供行编辑支持,允许您在片段和命令中
- 导航并进行编辑。您可以编辑当前命令/片段,也可以
- 从历史记录中检索以前的命令/片段,进行编辑并执行。
- 此支持类似于 readline/editline,具有与 emacs 相似的
- 简单绑定。还有特定于 jshell 工具的关键字序列。
jshell 工具的快捷方式
| 操作 | 效果 |
|---|---|
| Tab | 补全 Java 标识符或 jshell 命令 |
| Shift+Tab 然后 v | 将表达式转换为变量声明 |
| Shift+Tab 然后 m | 将语句转换为方法声明 |
| Shift+Tab 然后 i | 为此标识符添加导入 |
| Ctrl+L | 清除屏幕并重新输出片段 |
| Ctrl+U | 终止整行 |
光标位置移动
前提:输入当前片段(不要执行)
int x = 10
使用下列操作,进行体会:
| 操作 | 效果 |
|---|---|
| 左箭头或 Ctrl+B | 向后移动一个字符 |
| 右箭头或 Ctrl+F | 向前移动一个字符 |
| Ctrl+A | 移至行的开头 |
| Ctrl+E | 移至行的结尾 |
| Alt/Meta+B | 向后移动一个单词 |
| Alt/Meta+F | 向前移动一个单词 |
补充:meta键是以前MIT计算机键盘上的的一个特殊键,Macintosh的Command键也被用作此键 有人将它称为花键。如果你键盘没有使用Alt
浏览历史记录
前提:随便输入几条Java语句执行
jshell> int x = 2
x ==> 2
jshell> x + x
$4 ==> 4
jshell>
使用下列操作,进行体会:
| 操作 | 效果 |
|---|---|
| 上箭头或 Ctrl+P | 向上移动一行,向后浏览历史记录 |
| 下箭头或 Ctrl+N | 向下移动一行,向前浏览历史记录 |
| Ctrl+R | 向后搜索历史记录 |
基本编辑
前提:输入当前片段(不要执行)
int x = 10
使用下列操作,进行体会:
| 操作 | 效果 |
|---|---|
| Delete | 删除光标处或其后面的字符,具体取决于操作系统 |
| Backspace | 删除光标前面的字符 |
| Ctrl+K | 删除从光标到行结尾的文本 |
| Alt/Meta+D | 删除从光标到单词结尾的文本 |
| Ctrl+W | 删除从光标到前一个空格的文本 |
| Ctrl+Y | 将最近删除的文本粘贴到行中 |
| Alt/Meta+C | 单词首字母大写 |
| Alt/Meta+U | 将单词转换为大写 |
| Alt/Meta+L | 将单词转换为小写 |
重新评估以前输入片段
重新评估上一个片段使用的方法为:
/!
重新评估之前的第 n 个片段:可以使用斜杠加减号加数字 n 的方式
例如:
/-4
jshell> 2 + 2
$1 ==> 4
jshell> /!
2 + 2
$2 ==> 4
jshell> int z
z ==> 0
jshell> /-1
int z;
z ==> 0
jshell> /-4
2 + 2
$5 ==> 4
可以使用片段 ID 或 ID 范围指定要重新评估的片段。
ID 范围使用通过连字符分隔的两个 ID 表示,例如:
3-17
可以使用启动和错误片段,例如:
s3-s9 或 e1-e4
可以使用任意数量的 ID 或 ID 范围,例如:
/3-7 s4 14-16 e2
最后,可以通过输入 ctrl-R 后跟要搜索的字符串,在历史记录中向后搜索。
语句引入简要
编写一个文本文件
例如(mldn.txt保存位置D:\mldn.txt):
System.out.println("Hi,jshell");
System.out.println("xx,xx");
在jshell中执行:
/open d:/mldn.txt
jshell> /open d:/mldn.txt
Hi,jshell
xx,xx
现在我们可以体会到,我们只需要编写核心结构的代码即可,减少了对于结构化的需求。

JDK工具包:jshell的更多相关文章
- 方法的调用-JDK的JShell简单使用
方法的调用 方法在定义完毕后,方法不会自己运行,必须被调用才能执行,我们可以在主方法main中来调用我们自己定义好的方法.在 主方法中,直接写要调用的方法名字就可以调用了. public static ...
- Java 源码学习线路————_先JDK工具包集合_再core包,也就是String、StringBuffer等_Java IO类库
http://www.iteye.com/topic/1113732 原则网址 Java源码初接触 如果你进行过一年左右的开发,喜欢用eclipse的debug功能.好了,你现在就有阅读源码的技术基础 ...
- Android 学习第1课,JDK工具包的安装
1. jdk 的下载 目前为止,jdk的最新版是jdk8,http://www.oracle.com/technetwork/java/javase/downloads/index.html 到这里下 ...
- java基础-jdk工具包
1. 标准工具 这些工具都是JDK提供的,通常都是长期支持的工具,JDK承诺这些工具比较好用.不同系统.不同版本之间可能会有差异,但是不会突然就有一个工具消失. 1.1 基础包 (extcheck, ...
- 从vmware下载到Linux环境下jdk和maven的安装
写在前面:个人总结,如有不对请指出 操作环境: 操作系统:window7 企业版 处理器:Intel Core i5-4200U CPU @ 1.6GHz 内存:8G 系统类型:64位操作系统 需要安 ...
- 别再面向 for 循环编程了,JDK 自带的观察者模式就很香!
大家好,你还在面向 for 循环编程吗? 还有谁不会用观察者模式吗? 本篇栈长带来<观察者模式>理论及实战- 什么是观察者模式? 观察者模式(Observer Pattern)定义了对象间 ...
- JVM内存监控工具 Jvisualvm
这个工具是官方提供的,直接在JDK工具包下的bin目录找找就可以找到,或者打开cmd直接输入"jvisualvm"即可打开该工具(配置好java环境变量). 需要在catalina ...
- Java问题总结
1.如何查看使用java的版本 cmd-->java -version 2.如何下载jdk,sdk Java.JDK(工具包)的安装_百度经验http://jingyan.baidu.com/a ...
- [翻译]现代java开发指南 第二部分
现代java开发指南 第二部分 第二部分:部署.监控 & 管理,性能分析和基准测试 第一部分,第二部分 =================== 欢迎来到现代 Java 开发指南第二部分.在第一 ...
- Java的必备开发工具
身为一个Java开发的爱好者,你不得不承认需要安装以下软件 NO.1 Java开发工具包 Java JDK 可以说这个工具包不得不安装,因为这个工具包是开发Java程序的核心! Java JDK工具包 ...
随机推荐
- PhiData 一款开发AI搜索、agents智能体和工作流应用的AI框架
引言 在人工智能领域,构建一个能够理解并响应用户需求的智能助手是一项挑战性的任务.PhiData作为一个开源框架,为开发者提供了构建具有长期记忆.丰富知识和强大工具的AI助手的可能性.本文将介绍Phi ...
- 显示锁之ReentrantLock
ReentrantLock显示锁 在Java 1.5之前,协调对共享对象的访问可以使用的机制只有synchronized和volatile两种.Java1.5增加了一种新的机制:ReentrantLo ...
- Dubbo实战教程
"Dubbo是阿里巴巴开源的基于 Java 的高性能 RPC(一种远程调用) 分布式服务框架(SOA),致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案." ...
- OpenCV笔记(6) Bitwise
源码: BitwiseAnd //dst = src1 & src2 public static void BitwiseAnd(InputArray src1, InputArray s ...
- 使用nvm安装以及管理多版本node教程
安装nvm.node.npm 下载nvm安装包,推荐使用1.1.7,我个人使用1.1.8会有中文乱码的报错 点击exe文件,注意修改nvm的安装根目录以及node的安装根目录,后者是以后管理多版本no ...
- js浮点数类型
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8 ...
- Adobe软件资源 PS PR AE等等
整理了一波Adobe软件,19年20年21年Mac版本的都有,关注Rand_cs即可领取
- java springboot 指定运行端口
java springboot 指定运行端口 方法1: 修改源代码里的"\src\main\resources\application.properties" 文件,增加或修改 s ...
- C#.NET Winform使用线程承载WCF (硬编码配置)
winform同步承载WCF时,遇到大量请求,可能会阻塞UI线程.这时就需要开个线程来承载WCF. 1.硬编码形式创建WCF服务,WCFServer类: using CommonUtils; usin ...
- 微信刷脸SDK获取sub_openid
当调用SDK中 获取用户信息(getWxpayfaceUserInfo) /人脸支付凭证(getWxpayfaceCode) 方法获取 sub_openid 时,除了SDK自身要传入sub_appid ...