平时写 Java,哪怕只是想测试几个简单的字符串方法,或者验证一段循环逻辑,都得老老实实写上 class、main() 这一大套完整结构。为了测试两三行代码去新建个项目,难免有点 “大炮打蚊子”。
JShell 就是为了解决这个痛点而生的。它允许我们跳过搭建框架的繁琐步骤,直接运行 Java 代码片段。而使用咱们绿叶网的 JShell 在线编译器,我们可以直接在网页里写代码并看结果。对于初学者学语法,或者临时验证一段逻辑来说,轻便又高效。
页面上方就是咱们的 JShell 在线编译器。使用流程很简单:写代码、运行、看结果,再根据结果继续修改。
Ctrl + Enter 快捷键。我们来跑一个简单例子:假设想计算一组成绩的平均分,完全不需要写 public class Main 这一大套,直接写核心逻辑即可:
int[] scores = {88, 72, 95, 61, 90};
int total = 0;
for (int score : scores) {
total += score;
}
double average = (double) total / scores.length;
System.out.println("平均分:" + average);运行结果如下。
平均分:81.2像上面这种几十行的小代码,用在线编译器来跑再合适不过了。随写随测,把更多的时间留给写代码本身,而不是跟开发环境较劲。
在线版 JShell 主打一个 “小而快”,免去了本地配置环境的烦恼,特别适合以下场景:

JShell 是 JDK 9 引入的一个交互式 Java 工具。

以前我们学 Java,哪怕只是想算个 1 + 1,也得规规矩矩地建个类、写个 main() 方法,一套 “外壳” 写完才能运行。而在 JShell 中,我们可以直接输入一行代码,敲回车就能立刻看到结果。这种模式在编程里叫 REPL(读取 - 求值 - 输出循环)。
需要说明的是,JShell 不是一门新语言。我们写的依然是标准的 Java 代码,只是执行方式从 “写完一整个文件再运行” 变成了 “像聊天一样,输入一句执行一句”。
相比于传统的 Java 开发流程,JShell 最大的特点就是 “快”,非常适合拿来打草稿:

简单来说,两者用的都是 Java 语言,只是工作方式和应用场景不同。
两者是好搭档。平时学习和调试时,可以先在 JShell 这张 “草稿纸” 上把代码跑通;等真正要做项目了,再把代码搬回正常的 Java 工程里。

可以,但得看情况。对于一些简单、一次性的小任务,小伙伴们可以把几段代码写进文件里,当作 JShell 脚本直接运行,确实挺方便的。
不过,如果任务开始变得复杂(比如需要处理很多参数、划分多个模块),就别强行把 JShell 当脚本使了。这时候老老实实写一个常规的 Java 程序会更清晰,也更好维护。当然,如果你使用的是在线编译器,能不能直接跑 JShell 脚本文件,还得看当前页面的实际支持情况。

代码写得多了以后,鼠标点来点去多少有点慢。JShell 在线编译器支持下面这些常用快捷键,小伙伴们先把几个高频的记住就够用了。
Ctrl + Enter:运行代码。Ctrl + Z:撤销、Ctrl + Y:重做。Ctrl + C:复制、Ctrl + V:粘贴。Ctrl + A:全选。Ctrl + X:剪切。Ctrl + /:注释或取消注释。Ctrl + Home:跳转到首行的行首。Ctrl + End:跳转到末行的结尾。其中最值得记住的还是 Ctrl + Enter。刚改完一段表达式、循环或方法,直接运行一次,很快就能知道结果是不是自己预期的那样。