资源

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. 并发容器和框架之ConcurrentHashMap

    了解HashMap的人都知道HashMap是线程不安全的(多线程下的put方法达到一定大小,引发rehash,导致闭链,最终占满CPU),同时线程安全的HashTable效率又令人望而却步(每个方法都 ...

  2. python自定义函数可以向前引用不用声明

    #有些编程语言不够"聪明",向这类向前引用的方式会导致报错,但Python足够"醒目",这段代码是正确的! def next():     print('我在n ...

  3. Ubuntu16.04系统下 解决“无法获得锁 /var/lib/dpkg/lock -open (11:资源暂时不可用)、无法锁定管理目录(/var/lib/dpkg/),是否有其他进程正占用它?”的方法

    在Ubuntu16.04下安装软件,例如:sudo apt-get install lrzsz时提示: 无法获得锁 /var/lib/dpkg/lock - open (11: 资源暂时不可用) 无法 ...

  4. ASP.NET MVC5 实现基于Quartz.NET任务调度

    工作之余.技术?.记是不可能记住的. 只有写点东西 才能维持得了生活这样子的.好早就像写一篇关于任务调度的文章.终究是太懒了 一.Quartz.NET介绍 Quartz.NET是一个强大.开源.轻量的 ...

  5. [LeetCode] Permutation in String 字符串中的全排列

    Given two strings s1 and s2, write a function to return true if s2 contains the permutation of s1. I ...

  6. python的布尔类型与流程控制

    布尔类型其实可以算是一种特殊的数字,下面是 help() 函数得到的帮助信息:  bool 首先,请注意这一行:

  7. Mysql之数据类型(胖胖老师)

    like语句与通配符insert into teacher_1 values('胖胖', '男', 18),('小明', '男', 19),('张三', '男', 30),('李四', '男', 27 ...

  8. python 简单实现淘宝关键字商品爬取

    本文有2个文件 1:taobao_re_xpath 2:taobao_re_xpath_setting # 1:taobao_re_xpath # -*- coding:utf-8 -*- # aut ...

  9. jQuery滚动指定位置

    $(document).ready(function() { $("#scroll").click(function() { $('html, body').animate({ s ...

  10. [HNOI2013]比赛

    题目描述 沫沫非常喜欢看足球赛,但因为沉迷于射箭游戏,错过了最近的一次足球联赛.此次联 赛共N支球队参加,比赛规则如下: (1) 每两支球队之间踢一场比赛. (2) 若平局,两支球队各得1分. (3) ...