Java Shell, 즉 JShell은 Java 9부터 공식적으로 도입된 REPL(Read-Evaluate-Print-Loop) 도구입니다. 별도의 main() 메서드 작성이나 코드 컴파일 과정 없이도 대화형 셸 환경에서 빠르게 프로토타이핑과 디버깅을 수행할 수 있다는 점이 가장 큰 장점입니다. 명령 프롬프트(또는 터미널)에서 "jshell"이라고 입력하기만 하면 바로 실행할 수 있습니다.
1. 스니펫 저장하기 — /save
JShell에서 작성한 스니펫 소스 코드는 "/save [-all|-history|-start]" 명령을 사용해 파일로 저장할 수 있습니다.
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> /save C:\Users\User\jshell.txt
위 명령을 실행하면 지정한 경로에 새로운 "jshell.txt" 파일이 생성됩니다. 옵션별 동작 방식은 다음과 같습니다.
- -all: 실패·덮어쓰기·삭제된 항목을 포함한 모든 유효 스니펫을 저장합니다.
- -history: 입력한 명령과 표현식 전체 히스토리를 그대로 저장합니다.
- -start: JShell 시작 시 기본으로 로드되는 시작 스니펫을 저장합니다.
2. 스니펫 편집하기 — /edit
"/edit" 명령을 사용하면 외부 편집기에서 코드를 수정할 수 있습니다.
C:\Users\User>jshell
| Welcome to JShell -- Version 9.0.4
| For an introduction type: /help intro
jshell> /edit
| created method empName(String,String)
이 명령을 실행하면 JShell Edit Pad라는 전용 편집 창이 열립니다. 이 창에서 코드 스니펫을 자유롭게 수정하고 저장하면 변경 사항이 즉시 JShell 세션에 반영됩니다.
JShell Edit Pad 화면

3. 스니펫 삭제하기 — /drop
더 이상 필요하지 않은 스니펫은 "/drop <id>" 명령으로 삭제할 수 있습니다.
jshell> /drop 1
| dropped method empName(String,String)
jshell>
위 예시처럼 스니펫 ID를 지정하여 해당 메서드나 변수 선언을 세션에서 제거할 수 있습니다. 이처럼 /save, /edit, /drop 명령만 익혀두면 JShell에서 코드 조각을 효율적으로 관리하며 생산성 높은 개발 환경을 구축할 수 있습니다.