美文网首页
#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