0. 小结
-
简介
a. jshell适合入门时快速过代码,也能简化单元测试。
b. 有了它,你就能零基础学java了。难度降到跟python一样简单。搜了一下发现没什么人写jshell的教程,也很少见到推荐使用。所以以下教程是根据官网资料和使用感想整理的。 -
涉及内容
2.1. 官网地址
2.2. Jshell 是什么
2.3. 为什么使用Jshell
2.4. 怎么打开jshell
2.5. jshell Commands
2.6. 测试代码
2.7. 更多的测试代码
2.8. 如何搜索
2.9. Feedback Modes
2.10. Scripts
1. 官网地址:
https://docs.oracle.com/javase/10/jshell/toc.htm
https://docs.oracle.com/javase/10/tools/jshell.htm#JSWOR-GUID-C337353B-074A-431C-993F-60C226163F00
2. Jshell 是什么
类似ipython,即开即用,调试好代码片段后,再把片段写到程序文件中。
[官网]JShell是一个Read-Evaluate-Print循环(REPL),它在输入时评估声明,语句和表达式,并立即显示结果。该工具从命令行运行。JShell提供了一种交互式评估Java编程语言的声明,语句和表达式的方法,使学习语言更容易,探索不熟悉的代码和API以及复杂代码的原型。
PSS: 几乎所有命令行的调用方法,都跟linux差不多。无论是windows的cmd,还是ipython,anaconda,或是JShell。几乎都是靠着help和tab,简称。
3. 为什么使用Jshell
使用JShell,您可以一次输入一个程序元素,立即查看结果,并根据需要进行调整。而不用写整个java程序
4. 怎么打开jshell
按照之前的教程安装好java10和配置环境变量。
在windows命令行直接键入 jshell
就能进入界面。
以下可以看版本。
C:\Users\>jshell -version
jshell 10.0.1
5. jshell Commands
基本上记住/help
和键盘按键<Tab>
就能找到所有指令和其用法
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>
6. 测试代码
下面这个文档,拉到最下面这一段就有代码示例了。
Example of Starting and Stopping a JShell Session
7. 更多的测试代码
https://docs.oracle.com/javase/10/jshell/toc.htm
十分方便,感觉将java的学习难度降到跟python差不多。这里的method类似小模块调用,报错还挺准的。
7.1. 需要import默认没有的包
jshell> import javax.swing.JFrame
jshell> new JFrame("jas")
$23 ==> javax.swing.JFrame[frame2,0,0,0x0,invalid,hidden,layout=java.awt.BorderL
ayout,title=jas,resizable,normal,defaultCloseOperation=HIDE_ON_CLOSE,rootPane=ja
vax.swing.JRootPane[,0,0,0x0,invalid,layout=javax.swing.JRootPane$RootLayout,ali
gnmentX=0.0,alignmentY=0.0,border=,flags=16777673,maximumSize=,minimumSize=,pref
erredSize=],rootPaneCheckingEnabled=true]
| 已创建暂存变量 $23 : JFrame
7.2 或者自动检测需要的包
注意官网<Shift+Tab i>,是两步操作。
这个意思是 a)先一起按键盘<Shift+Tab>
b)然后再按键盘i
jshell> new JFrame<Shift+Tab i>
0: Do nothing
1: import: javax.swing.JFrame
Choice: 1
Imported: javax.swing.JFrame
8. 如何搜索
搜索: <Ctrl-R>
9. Feedback Modes
反馈模式确定JShell中的提示,反馈和其他交互。 提供具有不同反馈级别的预定义模式。 可以根据需要创建自定义模式。有常规设置和自定义。
其实不懂为啥官网要为自定义格式写了一个文档,我决定跳过。
jshell> /set feedback
| /set feedback verbose
|
| 可用的反馈模式:
| concise
| normal
| silent
| verbose
10. Scripts
也可以在开始的时候load 脚本进去,我觉得更大的问题是脚本怎么写。
2018.7.4
最近有人问我[不想看英文怎么办?],我的回答是谷歌翻译和直接看代码;翻译不用翻墙,代码有中文版本。
网友评论