资源

Java9官网下载地址

Java9官方教程

JShell(Java Shell)

参考资料:

JShell User Guide

Java9先睹为快:JShell动手实践

以下大部分内容均来自该官方的JShell User Guide。

1.功能

Java9引入了JShell。JShell是一个Read-Eval-Print Loop (REPL)。Javaer终于可以不用羡慕Pythoner了。无需再为实验一些API,程序小片段而启动庞大的IDE。

只需执行jshell.exe,即可在控制台下进行实验。

2.启动

只要在path变量中加入Java安装路径,如C:\Program Files\Java\jdk-9\bin,即可在控制台下直接运行。换句话说只要,你在控制台下能执行Java 9的javac.exejava.exe,就可在控制台下执行jshell.exe

3.基本使用

  • 行尾的分号是可以省略的。
  • /list为列出输入命令的列表,也可直接输入/l
  • /2表示执行列表上第2条语句。
  • /edit 3/ed 3,可编辑列表第3条命令。
  • /help,帮助。
  • Ctrl+D/exit,退出JShell。
  • /Tab,补全。例子,"test".subString(<Tab>,查看方法签名、再按查看文档。
  • Shift+Tab i导入相应的类。如,输入new JFrame然后按Shift+Tab i(先按Shitf+Tab,松开后再按i))即可跳出菜单询问如何处理。
  • Shift+Tab v补全表达式。如,输入new JFrame("demo")然后按Shift+Tab v即可补全表达式。
  • /open, 打开文件

4.脚本(jsh)

官方文档中这样定义

A JShell script is a sequence of snippets and JShell commands in a file。

我觉得主要的好处就是:执行一个包含了java代码的脚本程序,不需要先编译然后再调用java命令去执行。

4.1 建立脚本文件(.jsh)的方式

  • 将当前在jshell中敲入的命令,直接保存。使用/save test.jsh
  • 直接用记事本新建一个test.jsh

比如将下列代码放入test.jsh文件:

String line = "c:/temp"
Path path = Paths.get(line);
if (Files.exists(path, LinkOption.NOFOLLOW_LINKS)){
Stream<Path> list = Files.list(path);
System.out.println("目录 "+ path+" 中的文件总数为 "+list.count());
}else{
System.out.println("目录 "+ path+ " 不存在!");
}
/exit

可以看到代码中不仅有Java代码还有jshell命令/exit

4.2 执行脚本

假设已定位到test.jsh所在目录。

有两种执行脚本的方式:

  • jshell下执行/open test.jsh
  • 在命令行下执行jshell test.jsh

运行截图如下:

注意:实验过程中,发现脚本文件似乎不能在控制台下进行交互。即不能在脚本中使用Scanner sc = new Scanner(System.in);处理输入。

最后

吐槽一下JShell。Java语言命令啥的都太长啦,JShell下的Content Assist又不够强大,真心不太适合写脚本。


Modular JDK

参考资料:

jigsaw

Java9相关资料(JShell简易教程等)的更多相关文章

  1. 移动开发之【微信小程序】的原理与权限问题以及相关的简易教程

    这几天圈子里到处都在传播着这样一个东西,微信公众平台提供了一种新的开放能力,开发者可以快速开发一个小程序,取名曰:微信公众平台-小程序 据说取代移动开发安卓和苹果,那这个东东究竟是干吗用的?但很多人觉 ...

  2. 【转】Delphi内嵌ASM简易教程

    Delphi内嵌ASM简易教程 作者:heiying2006-03-19 18:33分类:默认分类标签: 前言 Delphi作为一个快速高效的开发平台,使用的人越来越多,但熟悉在Delphi代码中嵌入 ...

  3. [转]Unity3D Editor 编辑器简易教程

    Star 自定义编辑器简易教程 an introduction to custom editors 原文地址 http://catlikecoding.com/unity/tutorials/star ...

  4. React Test相关资料

    karma 前端测试驱动器,生产测试报告,多个浏览器 mocha js的测试框架,相当于junit chai,单元测试的断言库,提供expect shudl assert enzyme sinon.j ...

  5. Emacs简易教程

    Emacs简易教程阅读: 命令: $emacs 进入之后,输入: C-h t 这里,C-h表示按住[Ctrl]键的同时按h ####### 20090620 *退出: 输入“C-x C-c” *撤销: ...

  6. Intellj IDEA 简易教程

    Intellj IDEA 简易教程 目录 JDK 安装测试 IDEA 安装测试 调试 单元测试 重构 Git Android 其他 参考资料 Java开发IDE(Integrated Developm ...

  7. MetaProducts Offline Explorer使用简易教程

    MetaProducts Offline Explorer使用简易教程 by windtrace  20170419 最近想下载一个网站上的内容打包成chm文件,以便离线浏览,webzip太长时间不更 ...

  8. VS2013创建Windows服务 || VS2015+Windows服务简易教程

    转自:https://www.cnblogs.com/no27/p/4849123.htmlhttps://blog.csdn.net/ly416/article/details/78860522 V ...

  9. Argparse简易教程

    Argparse简易教程 原文:Argparse Tutorial 译者:likebeta 本教程是对于Python标准库中推荐使用的命令行解析模块argparse的简单介绍. PS:还有其他两个模块 ...

随机推荐

  1. SQL知识点

    关系型数据库:MySql非关系型数据库:Redis(以键值对的方式) SQL分几类: DDL:数据定义语言:create.alter.drop.truncate DML:数据操作语言:insert.d ...

  2. 00-翻译IdentityServer4的目的

    强迫自己阅读英文文档 加深IdentityServer4的概念认识

  3. 利用typescript生成Swagger文档

    项目地址:https://github.com/wz2cool/swagger-ts-doc demo代码地址:https://github.com/wz2cool/swagger-ts-doc-de ...

  4. 使用javaMail实现简单邮件发送

    一.首先你要用来发送邮件的qq邮箱需要开通pop3/smtp服务,这个可以百度一下就知道了 二.导入所需要的jar包,我使用的是maven添加依赖 <dependency> <gro ...

  5. 【转】C++ STL快速入门

    转自:https://www.cnblogs.com/skyfsm/p/6934246.html 冠军的试炼 悟已往之不谏,知来者之可追 博客园 首页 新随笔 联系 订阅 管理 随笔 - 60  文章 ...

  6. [LeetCode] Remove 9 移除9

    Start from integer 1, remove any integer that contains 9 such as 9, 19, 29... So now, you will have ...

  7. 跨域访问 - 跨域请求 同源策略概念对跨域请求的影响 及几种解决跨域请求的方法如 jsonp

    为什么会设置同源策略 > 适用于浏览器的一种资源访问策略 > 同源策略(Same origin policy)是一种约定,它是浏览器最核 心也最 基本的安全功能,如果缺少了同源策略,则浏览 ...

  8. 使用脚本删除hive分区中的问题(expecting KW_EXCHANGE near mytable in alter exchange partition)

  9. [SDOI 2011]黑白棋

    Description 题库链接 给出一个 \(1\times n\) 的棋盘,棋盘上有 \(k\) 个棋子,一半是黑色,一半是白色.最左边是白色棋子,最右边是黑色棋子,相邻的棋子颜色不同. 小 \( ...

  10. [SDOI 2015]约数个数和

    Description  设d(x)为x的约数个数,给定N.M,求 $\sum^N_{i=1}\sum^M_{j=1}d(ij)$ Input 输入文件包含多组测试数据. 第一行,一个整数T,表示测试 ...