Jshell使用
原文: https://www.jianshu.com/p/5fb406c6203f
從java9開始,java開始引入了類似于python的交互式 REPL(Read-Eval-Print Loop,讀取-求值-輸出 循環)工具。官方的表述如下:
The Java Shell tool (JShell) is an interactive tool for learning the Java programming language and prototyping Java code. JShell is a Read-Evaluate-Print Loop (REPL), which evaluates declarations, statements, and expressions as they are entered and immediately shows the results. The tool is run from the command line.
簡而言之,使用 JShell,你可以輸入代碼片段并馬上看到運行結果,然后就可以根據需要作出調整。官方的表述如下:
JShell helps you try out code and easily explore options as you develop your program. You can test individual statements, try out different variations of a method, and experiment with unfamiliar APIs within the JShell session. JShell doesn’t replace an IDE. As you develop your program, paste code into JShell to try it out, and then paste working code from JShell into your program editor or IDE.
接下來我們就開始初步的使用一下Jshell。首先我們要安裝jdk,并且版本要高于9。我這里安裝的是jdk10,并且配置好環境變量。
首先我們打開命令行,輸入jshell,結果如下:
按照提示,我們繼續輸入/help intro
這里有一個初步的介紹,接下來我們實戰。首先我們用jshell計算兩個double 數的和。
那么在這里,我們就可以像寫java代碼一樣執行我們的表達式,對于每一步我們都可以了解清楚。當然有時候,我們希望自己做一個函數來執行兩個double數的加法。代碼如下:
這樣我們就創建了一個方法。接下來使用我們的方法。
那么從上面的這些例子我們可以看出,Jshell是可以執行我們的任何代碼片段。但有個問題,就是加入我聲明多個函數之后,我忘了那個是哪個,怎么辦呢?所以我們需要學習Jshell提供給我們的命令。
jshell> /help | 鍵入 Java 語言表達式, 語句或聲明。 | 或者鍵入以下命令之一: | /list [<名稱或 id>|-all|-start] | 列出您鍵入的源 | /edit <名稱或 id> | 編輯源條目 | /drop <名稱或 id> | 刪除源條目 | /save [-all|-history|-start] <文件> | 將片段源保存到文件 | /open <file> | 打開文件作為源輸入 | /vars [<名稱或 id>|-all|-start] | 列出已聲明變量及其值 | /methods [<名稱或 id>|-all|-start] | 列出已聲明方法及其簽名 | /types [<名稱或 id>|-all|-start] | 列出類型聲明 | /imports | 列出導入的項 | /exit [<integer-expression-snippet>] | 退出 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 ... | 設置配置信息 | /? [<command>|<subject>] | 獲取有關使用 jshell 工具的信息 | /! | 重新運行上一個片段 -- 請參閱 /help rerun | /<id> | 按 ID 或 ID 范圍重新運行片段 -- 參見 /help rerun | /-<n> | 重新運行以前的第 n 個片段 -- 請參閱 /help rerun | | 有關詳細信息, 請鍵入 '/help', 后跟 | 命令或主題的名稱。 | 例如 '/help /list' 或 '/help intro'。主題: | | intro | jshell 工具的簡介 | id | 片段 ID 以及如何使用它們的說明 | shortcuts | 片段和命令輸入提示, 信息訪問以及 | 自動代碼生成的按鍵說明 | context | /env /reload 和 /reset 的評估上下文選項的說明 | rerun | 重新評估以前輸入片段的方法的說明
這就是Jshell提供給我們的所有命令。接下來,我們看一下剛才所有鍵入的源。
那么我們可以看到我們所執行的任何輸入。我們可以刪除,編輯,修改等等,這里就不在做說明了。接下里主要為大家演示三個命令。
第一個便是保存,/save。
/save [-all|-history|-start] <文件>
這
樣我們就將我們所有的歷史紀錄保存到了d盤下面的jshell.txt文件。當然依然是unix的那句話,沒有報錯就證明執行成功。當然你也可以試一試其他兩個參數。
第二個我們演示的命令便是,/open 。
打開一個輸入源。/open<file>
可以看到我們文件中所寫的這個函數,已經成功加入到jshell中了。
那么第三個我們要演示的命令是。/help context。
它是對/env /reload 和 /reset 的評估上下文選項的說明
shell是一個交互式的環境,既然環境,那么肯定有上下文,肯定有依賴,我們可以利用這三個命令,去改變我們jshell的上下文。這里我們可以看到模塊這兩個字,這是java9開始,java的一個重要機制,引入了模塊機制。那么有興趣的話,可以看看,這邊我也在學習。其他的jshell命令,我相信見名知意,何況注釋寫的這么好。大家可以自己練習試一下。
總結
- 上一篇: geth搭建以太坊私链及常用操作
- 下一篇: 马斯克SpaceX星链计划大升级:将直接