JShell 入门第一部分

发布日期:2026-07-13 10:19:03   来源 : 杭州电子商务研究院    浏览量 :14
杭州电子商务研究院 发布日期:2026-07-13 10:19:03  
14

介绍

想象一下,你得到了一个新的库,你想尝试一下看看它是如何工作的。

你会怎么办?

您是否会在新项目或现有项目中创建一个具有主要方法的类只是为了测试它?

JUnit 测试?

好吧,在 Java 9 中,您还有另一个选择来完成此任务:JShell。

JShell 是一个读取-求值-打印循环 (REPL)。这是一个命令行工具,允许您输入 Java 语句(简单语句、复合语句,甚至完整的方法和类),对其进行求值,然后打印结果。

在本指南中,您将学习使用 JShell 的基础知识,从执行简单语句到定义类,以及一些用于管理代码片段的命令。最后,我们将通过一个实际示例向您展示如何使用 JShell 探索Guava,这是一个包含许多 Java 实用程序和集合类型的库。

JShell 随 Java 9 JDK 发行版一起提供。您可以从此处此处下载并按照安装说明进行操作。或者,您可以使用 Docker 和 OpenJDK 映像来运行 JShell

REPL 的重要性

简而言之,REPL 提供了一种执行代码的简单方法。

你可能会想,为什么 REPL 比使用其他方法更好?为什么不在 IDE 中创建一个带有 main 方法的类?

此外,您可以说 Java 已经有了一些第三方 REPL 工具(如Java REPL),而无需提及一些 IDE 执行代码片段的能力。

JShell 的JDK增强提案 (JEP)提供了两个很好的理由。这是第一个:

  • 在学习编程语言及其 API 时,即时反馈非常重要。学校放弃 Java 作为教学语言的首要原因是其他语言有“REPL”,而且对初始“Hello, world!”程序的要求要低得多。

当你学习新东西时,尝试那些需要最少努力并能立即得到反馈的东西很重要。以前在 Java 中,如果你必须尝试一些代码,即使是像Hello World这样基本的代码,你也必须创建一个类,添加一个主方法,添加几行代码,可能还要添加依赖项,编译,然后(如果没有错误)运行代码。即使使用 IDE 简化了事情,这也比使用 REPL 更复杂。

当然,Java 有 JShell 的替代品,但它们没有 JShell 在一个包中提供的所有功能,比如完整的语言支持或保留的上下文和会话历史记录。

此外,JShell 还为其评估引擎提供了 API,因此可以将其集成到 IDE或其他工具中,进一步简化我们的工作流程。

即使是经验丰富的开发人员也可以从 REPL 中受益。这是第二个原因:

  • 对于开发人员设计代码原型或研究新 API 来说,探索编码选项也很重要...没有了 class Foo { public static void main(String[] args) { ... } } 的繁琐,学习和探索就变得流畅了。

您可以快速地制作原型并试验库(方法的返回类型是什么?)以及语言功能(显示日期时区的格式模式是什么?)。

解释了 REPL 的重要性后,让我们深入了解 JShell 的基础知识。

安装

如前所述,JShell 包含在 JDK 中。只需转到安装的bin目录,例如:

      cd C:\Program Files\Java\jdk-9\bin
    

或者,您可以将此目录添加到PATH环境变量中。

接下来执行:

      jshell
    

壳相互作用

您应该看到类似下面的内容:

      $ jshell
|  Welcome to JShell -- Version 9
|  For an introduction type: /help intro

jshell>
    

这将启动一个交互式状态会话,这意味着它将在同一会话中记住先前定义的语句和修改。

您可以输入特定的 JShell 命令或 Java 代码(称为代码片段),特别是:

  • 表达式
  • 声明
  • 类声明
  • 接口声明
  • 方法声明
  • 字段声明
  • 导入声明

此时,一切已设置完毕,可以开始使用 JShell 了。

下一步

在本系列的下一篇指南中,您将学习如何使用表达式、变量、类等

以上内容来自杭州电子商务研究院推送
关注
关于我们
热门推荐
合作伙伴
免责声明:本站部分资讯来源于网络,如有侵权请及时联系客服,我们将尽快处理
Copyright © 2025-2027 ToB产业网址导航 公安备案 浙公网安备33010602013138号 浙ICP备16025413号-9
支持 反馈 关注 数据