一直以来,Java 人员最痛苦的莫过于写一些简单的代码片段也要架设一个比较完整的 Java 项目工程,一直以来,一个交互式实时命令行工具是大家所期盼的。

但是我发现,身边的朋友,很少使用 JShell,一方面可能是大家都不知道,另一方面,说起来有点遗憾,就是大家都还不知道要怎么用。活生生的现实版 Java11 都出了,很多人却停留在 Java7 或 Java8 上。

不扯那么多了,我会用几篇文章给大家详解下 JShell,这篇文章主要的内容就是介绍介绍这个 JShell。

JShell 简介

JShell 是一个 Java Shell 工具,是一个用于学习 Java 编程语言和 Java 代码原型的交互式工具。

JShell 是一个 Read Evaluate Print Loop ( 中文 「 交互式解释器 」, 简称 REPL ),JShell 会在输入时运行声明,语句和表达式,并立即显示结果。

为什么使用 JShell

一个 REPL 最大的好处就是输入即结果,也就是在按下回车的那一霎那就会立即显示刚刚输入的代码的运行结果。

也就是说,使用 JShell,我们可以一次输入一段程序代码,立即查看结果,并根据需要进行调整。

Java 开发是一个非常复杂的过程,具体复杂到什么程度呢 ?

写一个完整的代码片段。

编译它并修复一些错误。 使用 javac 命令。

运行编译后的代码。使用 java 命令。

如果运行出错,则需要找出为什么出错。

编辑代码。

重新开始整个过程。

当然了,这是很多编程语言都需要经过步骤,悲剧就悲剧在 Java 需要使用两个命令才能完成整个过程。

JShell 可帮助我们在开发程序时尝试即时代码并轻松探索可能的选择。我们可以在 JShell 中测试单个语句,尝试不同的方法变体,并在 JShell 会话中试验不熟悉的 API。

我们可以首先将自己写的代码片段粘贴到 JShell 中运行,查看结果,如果正确,就将 JShell 中的代码粘贴回程序编辑器或 IDE 中。

注意: JShell 并不能替换 IDE,它的目标也不是替换任何 IDE。

确定 Java 版本

因为 JShell 是 JDK9 的新功能,所以你的 Java 版本一定要 Java 9 以上

可以使用下面的命令查看你的 Java 版本

[yufei@www.twle.cn ~]$ java -version

java version "10.0.2" 2018-07-17

Java(TM) SE Runtime Environment 18.3 (build 10.0.2+13)

Java HotSpot(TM) 64-Bit Server VM 18.3 (build 10.0.2+13, mixed mode)

我因为比较时髦 ( 写教程惹的祸 ),用的是最新的 Java 10

立即开始使用 JShell

其实,并不需要输入 java -version 来先查看版本,直接在命令行中输入 jshell 命令即可

jshell

如果一切顺利,就会显示欢迎词语

[yufei@www.twle.cn ~]$ jshell

| 欢迎使用 JShell -- 版本 10.0.2

| 要大致了解该版本, 请键入: /help intro

jshell>

如果 Java 环境配置不正确或者 Java 版本过低,就会直接显示命令没找到

[yufei@www.twle.cn ~]$ jshell

-bash: jse: command not found

需要说明的是,如果你的 java 9 以上的版本的 bin 路径并没有包含在 PATH 环境变量中,则需要输入绝对路径,比如

[yufei@www.twle.cn ~]$ /Library/Java/JavaVirtualMachines/jdk-10.0.2.jdk/Contents/Home/bin/jshell

| 欢迎使用 JShell -- 版本 10.0.2

| 要大致了解该版本, 请键入: /help intro

jshell>

显示 jshell 帮助

就如同刚进入 jshell 是显示的提示那样,直接输入 /help 命令可以获取所有的帮助信息

jshell> /help

| 键入 Java 语言表达式, 语句或声明。

| 或者键入以下命令之一:

| /list [|-all|-start]

| 列出您键入的源

| /edit

| 编辑源条目

| /drop

| 删除源条目

| /save [-all|-history|-start]

| 将片段源保存到文件

| /open

| 打开文件作为源输入

| /vars [|-all|-start]

| 列出已声明变量及其值

| /methods [|-all|-start]

| 列出已声明方法及其签名

| /types [|-all|-start]

| 列出类型声明

| /imports

| 列出导入的项

| /exit []

| 退出 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 [|]

| 获取有关使用 jshell 工具的信息

| /set editor|start|feedback|mode|prompt|truncation|format ...

| 设置配置信息

| /? [|]

| 获取有关使用 jshell 工具的信息

| /!

| 重新运行上一个片段 -- 请参阅 /help rerun

| /

| 按 ID 或 ID 范围重新运行片段 -- 参见 /help rerun

| /-

| 重新运行以前的第 n 个片段 -- 请参阅 /help rerun

|

| 有关详细信息, 请键入 '/help', 后跟

| 命令或主题的名称。

| 例如 '/help /list' 或 '/help intro'。主题:

|

| intro

| jshell 工具的简介

| id

| 片段 ID 以及如何使用它们的说明

| shortcuts

| 片段和命令输入提示, 信息访问以及

| 自动代码生成的按键说明

| context

| /env /reload 和 /reset 的评估上下文选项的说明

| rerun

| 重新评估以前输入片段的方法的说明

退出 jshell

退出 jshell 有些复杂,而且有些反人类,别人家的都是直接输入 exit 或 exit() 就可以了, jshell 竟然是输入 /exit

jshell> /exit

| 再见

[yufei@www.twle.cn ~]$

注意,千万不要遗漏了那个 /

java jshell_[Java JShell 指南] - 介绍相关推荐

  1. [原创]Java性能优化权威指南读书思维导图

    [原创]Java性能优化权威指南读书思维导图 书名:Java性能优化权威指南 原书名:Java performance 作者: (美)Charlie Hunt    Binu John 译者: 柳飞 ...

  2. Java并发编程-并发工具包java.util.concurrent使用指南

    译序 本指南根据 Jakob Jenkov 最新博客翻译,请随时关注博客更新 本指南已做成中英文对照阅读版的 pdf 文档,有兴趣的朋友可以去 Java并发工具包java.util.concurren ...

  3. Java多线程编程实战指南

    内容简介 随着CPU 多核时代的到来,多线程编程在充分利用计算资源.提高软件服务质量方面扮演了越来越重要的角色.而解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案.然而,多线程编 ...

  4. Java 7 并发编程指南

    原文是发表在并发编程网上翻译后的 <Java 7 并发编程指南>,这里对其中的目录做个更加详细的描述,并且写出了重点说明,方便日后快速查阅.建议仔细查看每节的代码实现,非常具有参考价值.可 ...

  5. Java多线程编程实战指南+设计模式篇pdf

    下载地址:网盘下载 随着CPU 多核时代的到来,多线程编程在充分利用计算资源.提高软件服务质量方面扮演了越来越重要的角色.而 解决多线程编程中频繁出现的普遍问题可以借鉴设计模式所提供的现成解决方案.然 ...

  6. java性能优化权威指南_Java性能优化权威指南 PDF扫描[132MB]

    Java性能优化权威指南主要为Java SE 和Java EE 应用的性能调优提供建议.主要包括以下几方面:性能监控.性能分析.Java HotSpot VM 调优.高效的基准测试以及Java EE ...

  7. Java时间和日期指南

    长期以来,正确处理日期,时间,时区,夏时制,and年等一直是我的烦恼. 本文并不是一个全面的指南时域,请参阅日期和时间在Java中 -更详细,但略有下降,ekhem,日期. 它仍然是相关的,但是没有涵 ...

  8. java接口fastjson_走进Java接口测试之fastjson指南

    来源:https://www.testwo.com 走进Java接口测试之fastjson指南s1.jpeg (147.9 KB, 下载次数: 0) 2020-10-5 23:59 上传 引言 在上文 ...

  9. java新手入门学习指南

    java新手入门学习指南由 android杂谈网原创. 0.准备 1.JDK安装和环境变量配置 2. 安卓开发环境搭建 3.熟悉eclipse开发环境,并使用eclipse创建第一个java应用程序 ...

  10. java chrome 控制台_[Java教程]Chrome 控制台指南

    [Java教程]Chrome 控制台指南 0 2014-09-16 20:01:07 转自:http://blog.jobbole.com/76985/ Chrome的开发者工具已经强大到没朋友的地步 ...

最新文章

  1. 【翻译】旧技术成就新勒索软件,Petya添加蠕虫特性
  2. html 注释_java基础- Java编程规范与注释
  3. 神经网络调参训练集噪音比例对网络性能的影响
  4. oracle dataguard in-memory,Oracle 11g Dataguard 物理备库配置(一)之Duplicate配置
  5. resource.arsc二进制内容解析 之 RES_TABLE_TYPE_TYPE (Config List)
  6. c 语言 单链表的操作 易考点
  7. MS SQL入门基础:创建和使用图表
  8. 如何用CSS让一个容器水平垂直居中?
  9. Java虚拟机------JVM内存区域
  10. arcgis加载dwg显示一个点_DWG/DGN格式导入Arcgis;转化为shp格式;更改地理坐标;导入Google Earth...
  11. Cocos Creator 获取当前URL取参数
  12. 从 Netflix 到 Alibaba,Spring Cloud 更好了吗?
  13. 一人身兼多个项目时的“课程表”工作模式实践
  14. 单片机重要组成部分还有什么,引脚封装分布知识讲解(一)
  15. 使用jsencrypt实现参数的前端加密
  16. 网易有道笔试题(2014届,2013.10北邮站)
  17. 虚拟服务器与域名怎么解析,服务器和虚拟主机的绑定域名解析
  18. 市场下行手机市场成血海,为何荣耀逆流而上?
  19. java word 水印_Java 添加Word文本水印、图片水印
  20. web开发中首页静态化处理

热门文章

  1. amos调节变量怎么画_AMOS结构方程教程,SPSS调节效应分析操作与结果的详细解读...
  2. 2022年煤矿安全监测监控特种作业证考试题库模拟考试平台操作
  3. 2020年全国大学生数学建模B题题目概要
  4. 录制计算机课,如何录制直播网课?教你在电脑上如何录屏!
  5. [JZOJ5618]【NOI2018模拟3.31】华胥梦天
  6. WPS简历模板的图标怎么修改_个人简历模板集锦,简历自我评价怎么写?
  7. keil4模块化编程
  8. 联想笔记本键盘排线,联想笔记本原装键盘价格表 联想笔记本键盘如何更换
  9. Dymola-多学科系统仿真工具
  10. Bootstrap优秀模板-INSPINIA.2.9.2