美文网首页
#java10# jshell怎么用

#java10# jshell怎么用

作者: LeeMin_Z | 来源:发表于2018-07-04 00:15 被阅读27次

0. 小结

  1. 简介
    a. jshell适合入门时快速过代码,也能简化单元测试。
    b. 有了它,你就能零基础学java了。难度降到跟python一样简单。搜了一下发现没什么人写jshell的教程,也很少见到推荐使用。所以以下教程是根据官网资料和使用感想整理的。

  2. 涉及内容
    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

最近有人问我[不想看英文怎么办?],我的回答是谷歌翻译和直接看代码;翻译不用翻墙,代码有中文版本。

相关文章

网友评论

      本文标题:#java10# jshell怎么用

      本文链接:https://www.haomeiwen.com/subject/ronduftx.html