它是一个交互式 Java Shell 工具,它允许我们从 Shell 执行 Java 代码并立即显示输出。 JShell 是一个 REPL(读取评估打印循环)工具并从命令行运行。
JShell 的优点
Jshell 减少了运行 Java 程序和测试业务逻辑所需的所有工作。
如果不使用Jshell,Java程序的创建涉及以下步骤。
- 打开编辑器并编写程序
- 保存程序
- 编译程序
- 编辑是否有任何编译时错误
- 运行程序
- 编辑是否有任何运行时错误
- 重复这个过程
Jshell 不需要上述步骤。我们可以评估语句、方法和类,甚至可以在不创建类的情况下编写 hello 程序。
如何启动 JShell
要启动 Jshell,首先我们必须安装 Java 9,然后在 Linux 中打开终端或在 Windows 中打开命令提示符并输入 jshell ?v。它将启动 jshell 会话并向控制台显示一条欢迎消息。
你好 Java 消息
要显示简单的 "Hello Java" 消息,请在不创建类的情况下编写打印命令并按 Enter。
变量
我们可以声明变量并在 Jshell 会话中的任何地方使用。让我们创建一个整数变量。
分号 (;) 是可选的,我们可以保留它并且它工作正常。看,变量 b 是在不使用分号的情况下创建的。
临时变量
如果我们不提供变量名,Java 会创建隐式变量来存储值。这些变量以 $符号开头。我们可以通过指定隐式变量来使用这些变量,就像我们在下面的 screen-shot 中所做的那样。
表达式
我们可以测试任何有效的 Java 表达式以获得即时输出。请参阅以下示例。
两个整数相加
jshell> 2+3
$1 ==> 5
| created scratch variable $1:int
jshell>
复合表达式
jshell> 2+(5*4+(2+1))
$4 ==> 25
| created scratch variable $4:int
jshell>
方法
要测试方法业务逻辑,请创建一个方法并立即获得结果。请参阅以下示例。
jshell> void show(){
...> System.out.println("This is show method");
...> }
| created method show()
调用方式
jshell> show();
This is show method
要创建类,请为该类编写源代码并通过立即创建对象来调用其方法。请参阅以下示例。
类
jshell> class Hello{
...> void show(){
...> System.out.println("This is show method");
...> }
...> }
| created class Hello
jshell> new Hello().show();
This is show method
包导入
默认情况下,导入 10 个包,也可以使用 import 语句导入任何包。
要查看默认导入包,我们可以使用以下命令。
jshell> /import
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
导入 java.sql 包。
jshell> import java.sql.*;
列出导入包,它将显示可用的可访问包。
jshell> /import
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
| import java.sql.*
现在包的数量是 11,包括新的一个 java.sql.*。
Jshell 命令
Jshell 提供了各种有用的命令,我们可以使用它们来修改环境、管理代码和获取代码相关信息。以下是有用的信息。
包导入
jshell> /import
| import java.io.*
| import java.math.*
| import java.net.*
| import java.nio.file.*
| import java.util.*
| import java.util.concurrent.*
| import java.util.function.*
| import java.util.prefs.*
| import java.util.regex.*
| import java.util.stream.*
| import java.sql.*
命令 /vars 显示变量。
jshell> /vars
| int $1 = 5
| int $2 = 5
| int $4 = 25
要获取所有编写的源代码,请使用 /list
jshell> /list
1:2+3
2:10-5
3:$1
4:2+(5*4+(2+1))
5:void show(){
System.out.println("This is show method");
}
6:show();
7:class Hello{
void show(){
System.out.println("This is show method");
}
}
8:new Hello().show();
9:import java.sql.*;
相关用法
- Java Short hashCode()用法及代码示例
- Java ShortBuffer rewind()用法及代码示例
- Java Guava Shorts.min()用法及代码示例
- Java Short shortValue()用法及代码示例
- Java Short compare()用法及代码示例
- Java Guava Shorts.max()用法及代码示例
- Java ShortBuffer hasArray()用法及代码示例
- Java ShortBuffer allocate()用法及代码示例
- Java Short equals()用法及代码示例
- Java ShortBuffer array()用法及代码示例
- Java ShortBuffer arrayOffset()用法及代码示例
- Java Shorts.indexOf(short[] array, short[] target)用法及代码示例
- Java ShortBuffer compact()用法及代码示例
- Java ShortBuffer flip()用法及代码示例
- Java ShortBuffer order()用法及代码示例
- Java Short parseShort()用法及代码示例
- Java Guava Shorts.contains()用法及代码示例
- Java Short decode()用法及代码示例
- Java ShortBuffer asReadOnlyBuffer()用法及代码示例
- Java Guava Shorts.asList()用法及代码示例
注:本文由纯净天空筛选整理自 Java Shell Tool (JShell)。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。