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;
}