我们如何在Java 9中自定义JShell的开始?

JShell 是一个交互式REPL 工具,用于执行和评估简单的Java程序,例如变量声明,语句,表达式等。

启动JShell工具时,默认情况下已预加载了代码。要显示此代码,我们只需启动命令“ / list -start ”。可以使用以下命令让JShell在启动时自动加载它们:“ / set start [-retain] [Type] ”。第一个选项“ -retain ”告诉JShell为下一个JShell会话记录所需的[Type]启动。如果未指定,则在打开新会话时可以启动默认启动

  /set start [-retain] -File
  /set start [-retain] -Default
  /set start [-retain] -none
  • / set start [-retain]文件:此命令告诉JShell,启动时必须加载文件的内容(此文件包含用于创建变量,方法,类等的代码)。

  • / set start [-retain] -none 此命令告诉JShell在启动时不要加载任何代码/命令。

  • / set start [-retain] -Default:此命令将JShell的开始重置为其默认值。


在下面的代码片段中,我们可以使用“ / set start [-retain] -File ”命令,

jshell> /list -start

  s1 : import java.io.*;
  s2 : import java.math.*;
  s3 : import java.net.*;
  s4 : import java.nio.file.*;
  s5 : import java.util.*;
  s6 : import java.util.concurrent.*;
  s7 : import java.util.function.*;
  s8 : import java.util.prefs.*;
  s9 : import java.util.regex.*;
  s10 : import java.util.stream.*;

jshell> /set start -retain save.jsh

jshell> /exit
|   Goodbye

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

jshell> /list -start

  s1 : int x = 20;
  s2 : double y = 30;
  s3 : public int sum(int a, int b) {
          return a + b;
       }
  s4 : String str = "nhooo";


在下面的代码片段中,我们可以使用“ / set start [-retain] -none ”命令。

jshell> /set start -retain -none

jshell> /exit
|   Goodbye

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

jshell> /list -start


在下面的代码片段中,我们可以使用“ / set start [-retain] -Default ”命令。

jshell> /set start -retain -default

jshell> /exit
|   Goodbye

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

jshell> /list -start

  s1 : import java.io.*;
  s2 : import java.math.*;
  s3 : import java.net.*;
  s4 : import java.nio.file.*;
  s5 : import java.util.*;
  s6 : import java.util.concurrent.*;
  s7 : import java.util.function.*;
  s8 : import java.util.prefs.*;
  s9 : import java.util.regex.*;
  s10 : import java.util.stream.*;