JShell이란?
JShell은 Java 9에서 새롭게 도입된 명령줄 기반의 대화형 REPL(Read-Evaluate-Print-Loop) 도구입니다. 이 도구를 사용하면 Java로 작성된 선언문, 문장, 표현식을 즉시 평가할 수 있으며, 코드 조각(snippet)을 실행한 결과도 바로 확인할 수 있습니다.
때로는 이미 Java 파일로 작성해 둔 코드를 JShell에서 그대로 실행하고 싶은 경우가 있습니다. 이럴 때 파일을 JShell 세션에 불러오려면 /open 명령어를 사용하면 됩니다.
예제: Test.java 파일 준비
예를 들어 "c://temp" 폴더에 다음과 같은 내용의 "Test.java" 파일을 생성했다고 가정해 보겠습니다.
String s1 = "TutorialsPoint";
String s2 = "Tutorix";
String s3 = s1 + s2;
int sum(int a, int b) {
return a + b;
}
int divide(int a, int b) {
return a / b;
}
/open 명령어로 파일 불러오기
이제 아래와 같이 /open 명령어를 사용하여 "Test.java" 파일을 JShell 세션에 불러올 수 있습니다.
C:\Users\User>jshell | Welcome to JShell -- Version 9.0.4 | For an introduction type: /help intro jshell> /open c:\temp\Test.java jshell> /vars | String s1 = "TutorialsPoint" | String s2 = "Tutorix" | String s3 = "TutorialsPointTutorix" jshell> /methods | int sum(int,int) | int divide(int,int)
세션 상태 확인하기
/open 명령어가 실행되면 해당 파일의 코드 전체가 현재 JShell 세션에 로드됩니다. 이후 다음 명령어들을 통해 세션에 등록된 내용을 확인할 수 있습니다.
- /vars: 세션에 선언된 변수 목록을 확인합니다.
- /methods: 세션에 정의된 메서드 목록을 확인합니다.
위 예제에서 볼 수 있듯이, 파일에 있던 변수와 메서드가 모두 세션에 정상적으로 등록되어 별도의 컴파일 과정 없이 즉시 사용할 수 있는 상태가 됩니다. 이처럼 /open 명령어를 활용하면 기존에 작성해 둔 Java 코드를 손쉽게 JShell 환경에서 테스트하고 실험할 수 있습니다.