JShell Java 9에 도입되었으며 명령줄입니다. main() 없이 간단한 문장, 표현식, 메소드, 클래스를 입력할 수 있는 도구 방법.
JShell에 코드를 입력할 수 있을 때 코드에 고유한 ID가 할당되었습니다. . 이 ID는 1에서 시작하고 JShell에 입력된 각 명령에 대해 증가합니다. 시작할 때 로드된 라이브러리에 대해서도 마찬가지입니다. 이러한 각 가져오기에 대해 고유한 ID 할당되었습니다. $1로 시작합니다. 로드된 각 코드에 대해 증가합니다($2, $3 등). 세션 중에 로드되고 입력된 모든 코드를 나열하는 내부 명령이 있습니다. 그런 다음 "/list " 명령.
/list /list [ID] /list [Code_Name] /list -start /list -all
- /목록: 이 명령은 현재 세션에 입력된 모든 활성 코드를 표시합니다(JShell 시작 시 로드된 코드 제외).
- /목록 [ID]: 이 명령은 입력한 ID에 해당하는 소스 코드를 표시합니다.
- /list [코드_이름]: 입력한 이름에 해당하는 소스 코드를 표시합니다.
- /list -start: 이 명령은 JShell이 시작될 때 로드된 모든 코드를 표시합니다. 세션을 시작할 때 기본적으로 미리 로드된 모든 가져오기가 표시되고 사용자가 미리 로드하려는 코드가 표시될 수 있습니다(이 부분은 JShell 시작 사용자 지정 장에서 세 번째 부분에서 설명됩니다).
- /list -all: 이 명령은 JShell 세션 중에 입력된 모든 활성, 비활성, 오류 및 사전 로드 코드를 나열합니다.
아래 코드 스니펫에서 "/list -all을 사용하여 입력된 모든 가져오기, 표현식 등을 나열할 수 있습니다. " 명령.
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> LocalDate localDate = LocalDate.of(2020, 04, 10) | Error: | cannot find symbol | symbol: class LocalDate | LocalDate localDate = LocalDate.of(2020, 04, 10); | ^-------^ | Error: | cannot find symbol | symbol: variable LocalDate | LocalDate localDate = LocalDate.of(2020, 04, 10); | ^-------^ jshell> int x = 10 x ==> 10 jshell> public enum Operate { ...> ADDITION, ...> DIVISION; ...> } | created enum Operate jshell> /list -all 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.*; e1 : LocalDate localDate = LocalDate.of(2020, 04, 10); 1 : int x = 10; 2 : public enum Operate { ADDITION, DIVISION; }
아래 코드 스니펫에서 변수의 이름을 지정할 수 있습니다. , 메서드 , 또는 같은 이름을 가진 유형일 수도 있습니다. 그런 다음 "/list " 해당 유형과 함께 이 이름의 다른 발생을 표시하는 명령입니다.
jshell> int x = 10 x ==> 10 jshell> public int x(int y) { ...> return y; ...> } | created method x(int) jshell> public long x(long y, long z) { ...> return y + z; ...> } | created method x(long,long) jshell> /list x 1 : int x = 10; 2 : public int x(int y) { return y; } 3 : public long x(long y, long z) { return y + z; }