java JShell使用全指南

 更新时间:2026年01月24日 09:27:13   作者:牧小七  
JavaJShell是一个从Java9开始引入的交互式REPL工具,适用于快速测试代码片段、学习Java语法、原型设计和实验调试,它提供了自动补全、查看导入设置、反馈模式、查看历史命令等功能,支持创建类、异常处理和使用外部库,本文介绍java JShell使用教程,感兴趣的朋友一起看看吧

Java JShell 是从 Java 9 开始引入的一个交互式 REPL(Read-Eval-Print Loop)工具,它允许你直接输入 Java 表达式、语句或声明,并立即看到执行结果,无需编写完整的类或方法包装。这使得它非常适合用于快速测试代码片段、学习 Java 语法或进行原型设计。

Java JShell 是一个交互式 REPL(Read-Eval-Print Loop)工具,从 Java 9 开始引入。

推荐阅读:java9学习系列之安装与jshell使用

下载

官网地址:http://www.oracle.com/technet...

脚本之家下载:https://www.jb51.net/softs/578567.html

以下是使用指南:

1.启动 JShell

# 直接启动
jshell
# 启动时指定模块路径
jshell --module-path <path>
# 启动时执行初始化脚本
jshell --startup <filename>

2.基本操作

输入 Java 代码

// 直接输入表达式
jshell> 2 + 2
$1 ==> 4
// 定义变量
jshell> int x = 10
x ==> 10
// 定义方法
jshell> String greet(String name) {
   ...>     return "Hello, " + name;
   ...> }
|  已创建 方法 greet(String)
// 调用方法
jshell> greet("World")
$3 ==> "Hello, World"

3.常用命令

/help- 查看帮助

jshell> /help
jshell> /help intro      # 查看简介
jshell> /help shortcuts  # 查看快捷键

/list- 列出代码片段

jshell> /list            # 列出所有片段
jshell> /list -all       # 列出所有(包括自动生成的)
jshell> /list -start     # 列出启动代码

/vars- 查看变量

jshell> /vars
|    int x = 10

/methods- 查看方法

jshell> /methods
|    String greet(String)

/types- 查看类型

jshell> /types
|    class Person

/edit- 编辑代码

jshell> /edit greet      # 编辑特定方法
jshell> /edit 1          # 编辑第1个代码片段

/save和/open

# 保存会话到文件
jshell> /save mysession.jsh
# 从文件加载代码
jshell> /open mysession.jsh
# 保存所有代码(包括自动生成的)
jshell> /save -all mysession.jsh

/drop- 删除代码片段

jshell> /drop x          # 删除变量x
jshell> /drop 1          # 删除第1个代码片段

/reset- 重置会话

jshell> /reset           # 重置所有状态

/exit- 退出

jshell> /exit

4.实用特性

自动补全

# 按 Tab 键补全
jshell> Sys<Tab>         # 会自动补全为 System
jshell> System.<Tab>     # 显示 System 类的所有方法

查看导入

jshell> /imports         # 查看已导入的包

设置反馈模式

jshell> /set feedback verbose     # 详细模式
jshell> /set feedback concise     # 简洁模式
jshell> /set feedback normal      # 普通模式(默认)
jshell> /set feedback silent      # 静默模式

查看历史命令

jshell> /history         # 查看历史命令

5.高级用法

创建类

jshell> class Person {
   ...>     private String name;
   ...>     
   ...>     public Person(String name) {
   ...>         this.name = name;
   ...>     }
   ...>     
   ...>     public String getName() {
   ...>         return name;
   ...>     }
   ...> }
|  已创建 类 Person
jshell> Person p = new Person("Alice")
p ==> Person@5e91993f
jshell> p.getName()
$8 ==> "Alice"

异常处理

jshell> try {
   ...>     int result = 10 / 0;
   ...> } catch (ArithmeticException e) {
   ...>     System.out.println("Error: " + e.getMessage());
   ...> }
Error: / by zero

使用外部库

# 启动时指定类路径
jshell --class-path lib/*.jar

6.快捷操作

快捷键功能
Ctrl+L清屏
Ctrl+R反向搜索历史
Ctrl+S正向搜索历史
Ctrl+C终止当前输入

7.示例:快速测试代码

// 快速测试算法
jshell> int[] numbers = {3, 1, 4, 1, 5, 9, 2, 6}
numbers ==> int[8] { 3, 1, 4, 1, 5, 9, 2, 6 }
jshell> Arrays.sort(numbers)
jshell> Arrays.toString(numbers)
$2 ==> "[1, 1, 2, 3, 4, 5, 6, 9]"
// 测试流操作
jshell> List<String> list = List.of("Java", "Python", "C++")
list ==> [Java, Python, C++]
jshell> list.stream().filter(s -> s.startsWith("J")).collect(Collectors.toList())
$3 ==> [Java]

8.退出保存设置

# 设置自动保存历史
jshell> /set history permanent
jshell> /set start -retain mysetup.jsh

JShell 非常适合:

  • 快速测试代码片段
  • 学习 Java 语法
  • 原型设计和实验
  • 调试和探索 API

到此这篇关于java JShell使用的文章就介绍到这了,更多相关java JShell使用内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • spring boot中的properties参数配置详解

    spring boot中的properties参数配置详解

    这篇文章主要介绍了spring boot中的properties参数配置,需要的朋友可以参考下
    2017-09-09
  • idea创建Springboot多模块项目(聚合项目)

    idea创建Springboot多模块项目(聚合项目)

    文章详细介绍了如何在idea创建Springboot多模块项目(聚合项目),包括创建父工程和子工程、编辑pom.xml文件、编写代码和测试,还介绍了如何处理Maven视图中的层级关系,并展示了如何同时启动多个子项目
    2024-11-11
  • springboot项目部署在linux上运行的两种方式小结

    springboot项目部署在linux上运行的两种方式小结

    这篇文章主要介绍了springboot项目部署在linux上运行的两种方式小结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-07-07
  • springboot yml配置文件定义list集合、数组和map以及使用中的错误

    springboot yml配置文件定义list集合、数组和map以及使用中的错误

    这篇文章主要介绍了springboot yml配置文件定义list集合、数组和map以及使用中遇到的错误问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • mybatis mapper.xml 区间查询条件详解

    mybatis mapper.xml 区间查询条件详解

    这篇文章主要介绍了mybatis mapper.xml 区间查询条件详解,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2021-09-09
  • Java并发编程深入理解之Synchronized的使用及底层原理详解 上

    Java并发编程深入理解之Synchronized的使用及底层原理详解 上

    在并发编程中存在线程安全问题,主要原因有:1.存在共享数据 2.多线程共同操作共享数据。关键字synchronized可以保证在同一时刻,只有一个线程可以执行某个方法或某个代码块,同时synchronized可以保证一个线程的变化可见(可见性),即可以代替volatile
    2021-09-09
  • Springboot转发重定向实现方式解析

    Springboot转发重定向实现方式解析

    这篇文章主要介绍了springboot转发重定向实现方式解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-03-03
  • Maven版本依赖pom文件内容及使用剖析

    Maven版本依赖pom文件内容及使用剖析

    这篇文章主要为大家介绍了Maven版本依赖pom文件内容及使用剖析,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2023-05-05
  • Java+Appium实现屏幕录制功能

    Java+Appium实现屏幕录制功能

    这篇文章主要介绍了Java如何利用Appium实现屏幕录制功能,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-06-06
  • 详解如何在Spring Boot启动后执行指定代码

    详解如何在Spring Boot启动后执行指定代码

    这篇文章主要介绍了在Spring Boot启动后执行指定代码,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06

最新评论