JShell은 변수 선언, 문장, 표현식 등 간단한 Java 프로그램을 실행하고 평가할 수 있는 대화형 REPL(Read-Eval-Print Loop) 도구입니다.
JShell이 실행되면 기본적으로 일부 코드가 미리 로드됩니다. 이 코드를 확인하려면 /list -start 명령을 입력하면 됩니다. 또한 /set start [-retain] [Type] 명령을 사용하면 JShell이 시작될 때 원하는 코드를 자동으로 불러오도록 설정할 수 있습니다.
여기서 첫 번째 옵션인 -retain은 현재 지정한 시작 구성을 저장하여 다음 JShell 세션에서도 동일하게 적용하도록 합니다. 이 옵션을 생략하면 새 세션을 열 때 기본 시작 구성이 적용됩니다.
/set start 명령의 주요 옵션
/set start [-retain] -File
/set start [-retain] -Default
/set start [-retain] -none
- /set start [-retain] File: JShell이 시작될 때 지정한 파일의 내용(변수, 메서드, 클래스 등을 생성하는 코드)을 불러오도록 설정합니다.
- /set start [-retain] -none: JShell이 시작될 때 어떠한 코드나 명령도 로드하지 않도록 설정합니다.
- /set start [-retain] -Default: JShell의 시작 구성을 기본값으로 초기화합니다.
-File 옵션 활용 예제
아래 코드에서는 /set start [-retain] -File 명령을 사용해 사용자가 작성한 파일(save.jsh)을 시작 시 자동으로 로드하도록 설정합니다.
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 = "TutorialsPoint";
세션을 종료한 후 다시 JShell을 실행하면 기본 import 문 대신 save.jsh 파일에 담긴 코드가 시작 구성으로 로드된 것을 확인할 수 있습니다.
-none 옵션 활용 예제
아래 코드에서는 /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
새 세션에서 /list -start를 실행해도 아무런 코드가 출력되지 않는 것을 볼 수 있습니다.
-Default 옵션 활용 예제
아래 코드에서는 /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.*;
다시 JShell을 실행하면 기본 import 문들이 시작 구성으로 복원된 것을 확인할 수 있습니다.