如何在 Java 9 中儲存當前的 JShell 會話?


Java 9 引入了一個新特性,即建立了一個名為 JShellREPL讀取-求值-列印-迴圈)。它是一個命令列提示工具,用於評估 Java 程式碼,而無需編寫完整的程式。

當我們在 JShell 中輸入程式碼或內部命令時,我們需要在當前會話中使用它。當我們關閉 JShell 並再次登入時,之前輸入的所有程式碼都將丟失。為了儲存所有輸入的程式碼到檔案中,已經實現了一個內部命令,使用“/save”命令。

/ save [file-path]
/ save -all [file-path]
/ save -history [file-path]
/ save -start [file-path]
  • /save [檔案路徑]: 不帶引數時,此命令將會話期間輸入的所有活動程式碼儲存到第二個引數中輸入的檔案中。請注意,錯誤輸入的程式碼和內部命令不會儲存到檔案中。
  • /save -all [檔案路徑]: 儲存會話期間輸入的所有活動程式碼(包括錯誤和啟動時的程式碼)到作為第二個引數輸入的檔案中。不會記錄輸入的內部命令。
  • /save -history [檔案路徑]: 將會話期間輸入的所有程式碼和命令儲存到第二個引數中輸入的檔案中。甚至內部命令也會儲存到檔案中。
  • /save -start: 儲存 JShell 啟動時啟動的所有程式碼。

在下面的程式碼片段中,根據 "/save" 命令後輸入的選項,在 JShell 中輸入的程式碼將儲存到不同的檔案中。我們需要將這些檔案儲存在副檔名為“.jsh”的目錄中。

C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro

jshell> int x = 20
x ==> 20

jshell> double y = 30
y ==> 30.0

jshell> public int sum(int a, int b) {
...>       return a + b;
...>    }
| created method sum(int,int)

jshell> String str = "TutorialsPoint"
str ==> "TutorialsPoint"

jshell> /list

1 : int x = 20;
2 : double y = 30;
3 : public int sum(int a, int b) {
       return a + b;
    }
4 : String str = "TutorialsPoint";

jshell> int var = "error"
|   Error:
|   incompatible types: java.lang.String cannot be converted to int
|   int var = "error";
|   ^-----^

jshell> /save C:\Users\User\save.jsh

jshell> /save -all C:\Users\User\saveAll.jsh

jshell> /save -history C:\Users\User\saveHistory.jsh

jshell> /save -start C:\Users\User\saveStart.jsh

更新於: 2020-04-08

620 次瀏覽

開啟你的 職業生涯

透過完成課程獲得認證

開始學習
廣告

© . All rights reserved.