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

Java 9의 JShell에서 컴파일 오류를 피하는 방법

JShell이란 무엇인가?

JShell은 Java 코드를 대화형으로 실행하고 결과를 즉시 확인할 수 있는 도구입니다. JShell은 명령 프롬프트(command-line)에서 실행되는 REPL(Read-Evaluate-Print-Loop) 도구로, 별도의 클래스나 메서드 작성 없이 간단한 코드 조각을 빠르게 테스트할 수 있어 학습과 디버깅에 매우 유용합니다.

컴파일 오류가 발생하는 이유

JShell에서 컴파일 오류(compilation error)를 피하려면 변수를 사용하기 전에 반드시 먼저 선언해야 합니다. 일반적인 Java 프로그램과 마찬가지로, JShell 역시 선언되지 않은 변수를 참조하면 컴파일 단계에서 오류를 보고합니다.

오류가 발생하면 JShell은 "^--^" 표기법을 사용하여 문제가 되는 위치를 시각적으로 강조해 줍니다.

선언되지 않은 변수 사용 시 발생하는 오류 예시

아래 코드 스니펫에서는 int 변수 div를 선언하면서 아직 선언되지 않은 변수인 num1num2를 사용하려고 합니다. 따라서 JShell은 컴파일러가 해당 변수들을 찾지 못했다는 의미의 컴파일 오류를 보고합니다.

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

jshell> int div = num1 / num2
|   Error:
|   cannot find symbol
|   symbol: variable num1
|   int div = num1 / num2;
|   ^--^
|   Error:
|   cannot find symbol
|   symbol: variable num2
|   int div = num1 / num2;
|   ^--^

위 출력 결과에서 "cannot find symbol(심볼을 찾을 수 없음)"이라는 메시지와 함께 ^--^ 기호가 오류가 발생한 변수 위치를 가리키고 있는 것을 확인할 수 있습니다.

변수를 먼저 선언하여 오류 해결하기

아래 코드 스니펫처럼 변수를 먼저 선언하면 오류 없이 정상적으로 실행됩니다. JShell은 선언된 변수의 이름 뒤에 이중 등호와 부등호(==>)를 붙여 그 값을 표시합니다.

jshell> int num1 = 35
num1 ==> 35

jshell> int num2 = 7
num2 ==> 7

jshell> int div = num1 / num2
div ==> 5

이처럼 num1에는 35, num2에는 7이 할당된 후, 두 변수를 나눈 결과가 div에 5로 저장된 것을 확인할 수 있습니다.

정리

JShell에서 컴파일 오류를 피하는 핵심은 변수를 사용하기 전에 반드시 선언하는 것입니다. REPL 환경에서는 코드가 한 줄씩 즉시 평가되므로, 순서에 맞게 변수를 선언하고 사용하면 오류 없이 원활하게 작업할 수 있습니다.