它是一個交互式 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)。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。