Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9 JShell에서 현재 세션을 저장하는 방법: /save 명령어 완벽 가이드

JShell 소개

Java 9REPL(Read-Evaluate-Print-Loop)이라 불리는 새로운 도구인 JShell을 도입했습니다. JShell은 완전한 프로그램을 작성하지 않고도 Java 코드를 즉시 실행하고 결과를 확인할 수 있는 명령줄(command-line) 프롬프트 도구입니다.

JShell에 코드나 내부 명령어를 입력하면 해당 내용은 현재 세션 동안에만 유지됩니다. JShell을 종료한 후 다시 실행하면 이전에 입력했던 모든 코드가 사라집니다. 이러한 문제를 해결하기 위해 입력한 코드 전체를 파일로 저장할 수 있는 내부 명령어인 "/save"가 제공됩니다.

/save 명령어 문법

/save [file-path]
/save -all [file-path]
/save -history [file-path]
/save -start [file-path]

각 옵션별 설명

  • /save [file-path]: 옵션 없이 사용하면 세션 중 입력된 유효한(active) 코드만 지정한 파일에 저장합니다. 오류가 발생한 코드와 내부 명령어는 파일에 저장되지 않습니다.
  • /save -all [file-path]: 세션 중 입력된 유효한 코드뿐만 아니라 오류가 발생한 코드와 시작 시 로드된 코드까지 모두 파일에 저장합니다. 단, 내부 명령어는 기록되지 않습니다.
  • /save -history [file-path]: 세션 중 입력된 모든 코드와 명령어를 파일에 저장합니다. 내부 명령어까지도 함께 저장됩니다.
  • /save -start: JShell이 시작될 때 자동으로 실행되는 코드 전체를 파일에 저장합니다.

사용 예제

아래 코드 예제에서는 "/save" 명령어 뒤에 어떤 옵션을 붙이느냐에 따라 JShell에 입력한 코드가 서로 다른 파일로 저장됩니다. 저장되는 파일은 확장자가 ".jsh"인 디렉터리에 보관해야 합니다.

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

jshell> int x = 20
x ==> 20

jshell> double y = 30
y ==> 30.0

jshell> public int sum(int a, int b) {
...>       return a + b;
...>    }
| created method sum(int,int)

jshell> String str = "TutorialsPoint"
str ==> "TutorialsPoint"

jshell> /list

1 : int x = 20;
2 : double y = 30;
3 : public int sum(int a, int b) {
       return a + b;
    }
4 : String str = "TutorialsPoint";

jshell> int var = "error"
|   Error:
|   incompatible types: java.lang.String cannot be converted to int
|   int var = "error";
|   ^-----^

jshell> /save C:\Users\User\save.jsh

jshell> /save -all C:\Users\User\saveAll.jsh

jshell> /save -history C:\Users\User\saveHistory.jsh

jshell> /save -start C:\Users\User\saveStart.jsh

위 예제처럼 각 옵션을 활용하면 세션이 종료된 후에도 저장된 .jsh 파일을 다시 열어(/open 명령어 사용) 이전 작업을 그대로 복원할 수 있습니다. 반복적인 실험 작업이나 학습 과정에서 JShell 세션을 효율적으로 관리하는 데 유용합니다.