Java9 Repl(JShell)


REPL代表Read-Eval-Print Loop 。 使用JShell,Java具有REPL功能。 使用REPL,我們可以編寫和測試基於java的邏輯,而無需使用javac編譯並直接檢視計算結果。

執行JShell

開啟命令提示字元並鍵入jshell,執行結果如下所示 -

檢視JShell命令

當進入jshell命令之後,可鍵入/ help 來檢視jshell中的幫助資訊。

jshell> /help
.... 一大波幫助說明資訊,此處省略 ...
  /vars [<名稱或 id>|-all|-start]
|       列出已宣告變數及其值
|  /methods [<名稱或 id>|-all|-start]
|       列出已宣告方法及其簽名
|  /types [<名稱或 id>|-all|-start]
|       列出已宣告的型別
|  /imports
|       列出匯入的項
|  /exit
|       退出 jshell
|  /env [-class-path <路徑>] [-module-path <路徑>] [-add-modules <模組>] ...
|       檢視或更改評估上下文
|  /reset [-class-path <路徑>] [-module-path <路徑>] [-add-modules <模組>]...
|       重新啟動 jshell
|  /reload [-restore] [-quiet] [-class-path <路徑>] [-module-path <路徑>]...
|       重置和重放相關歷史記錄 -- 當前歷史記錄或上一個歷史記錄 (-restore)
|  /history
|       您鍵入的內容的歷史記錄
|  /help [<command>|<subject>]
|       獲取 jshell 的相關資訊
|  /set editor|start|feedback|mode|prompt|truncation|format ...
|       設定 jshell 組態資訊
|  /? [<command>|<subject>]
|       獲取 jshell 的相關資訊
|  /!
|       重新執行上一個片段
|  /<id>
|       按 id 重新執行片段
|  /-<n>
|       重新執行前面的第 n 個片段
|
|  有關詳細資訊, 請鍵入 '/help', 後跟
|  命令或主題的名稱。
|  例如 '/help /list' 或 '/help intro'。主題:
|
|  intro
|       jshell 工具的簡介
|  shortcuts
|       片段和命令輸入提示, 資訊存取以及
|       自動程式碼生成的按鍵說明
|  context
|       /env /reload 和 /reset 的評估上下文選項

執行JShell命令

輸入/imports命令並檢視當前使用的匯入。

jshell> /imports
|    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.*

jshell>

在JShell中執行計算

嘗試在JShell中執行簡單的計算。

jshell> 3+1
$1 ==> 4
jshell> 13%7
$2 ==> 6
jshell> $2
$2 ==> 6
jshell>

在JShell中建立和使用函式

建立一個函式doubled()用來返回其引數的兩倍的值。

jshell> int doubled(int i){ return i*2;}
|  created method doubled(int)
jshell> doubled(6)
$3 ==> 12
jshell>

退出JShell
鍵入/exit

jshell> /exit
| Goodbye