이번 편의 목표: JDK 버전을 확인하고, main이 있는 클래스를 파일로 실행합니다.

자바 프로그램은 소스 파일을 컴파일해서 클래스 파일로 만든 뒤 실행합니다. 대화형으로 한 줄을 시험하는 도구도 있지만, 이 연재의 기준은 저장해 두고 다시 실행하는 파일입니다.

마지막 편에서는 종이책과 전자책의 연체료를 나누고, 공통 규칙은 추상 클래스로, 예약 기능은 인터페이스로 붙입니다. 지금 만드는 Hello.java가 그 첫 파일입니다.

설치보다 먼저 확인할 것

터미널에서 다음 두 명령을 실행합니다.

java -version

javac -version

java는 프로그램을 실행하는 명령이고, javac는 .java 파일을 컴파일하는 명령입니다. 둘 다 버전이 나오면 설치는 된 것입니다. 없으면 Adoptium 또는 오라클 JDK 안내를 따릅니다.

편집기는 메모장이어도 되고 VS Code여도 됩니다. 이번 편에서는 통합 개발 환경의 단추보다 컴파일과 실행 명령을 먼저 익힙니다.

첫 클래스

아래 코드를 Hello.java로 저장합니다. public 클래스 이름과 파일 이름은 같아야 합니다. Hello 클래스이면 파일도 Hello.java입니다.

Java
public class Hello {
    public static void main(String[] args) {
        System.out.println("안녕하세요. 생각나무 자바 연재입니다.");
        System.out.println(30 + 40);
    }
}

main은 프로그램이 시작되는 메서드입니다. String[] args는 실행할 때 넘기는 인자인데, 이번 편에서는 쓰지 않습니다. System.out.println은 한 줄을 출력하고 줄을 바꿉니다.

파일이 있는 폴더에서 컴파일한 다음 실행합니다.

javac Hello.java

java Hello

javac가 끝나면 같은 폴더에 Hello.class가 생깁니다. java 명령에는 확장자 .class를 붙이지 않습니다. 출력은 두 줄입니다.

안녕하세요. 생각나무 자바 연재입니다. 70

계산식 30 + 40은 따옴표 밖에 있으므로 숫자가 더해집니다. 따옴표 안에 넣으면 글자 30 + 40이 그대로 출력됩니다.

한 줄만 시험할 때는 jshell을 열어도 됩니다. 다만 이 연재의 완료 기준은 jshell 문장이 아니라, 저장한 파일을 두 번 이상 다시 실행하는 것입니다. jshell을 끝낼 때는 /exit 를 입력합니다.

실행이 안 될 때

javac를 찾지 못하면 JDK가 아니라 실행만 되는 환경일 수 있습니다. java와 javac가 같은 계열의 버전인지도 확인합니다. 클래스 이름과 파일 이름이 다르면 컴파일 오류가 납니다. 대소문자도 구분합니다. Hello와 hello는 다른 이름입니다.

직접 해 보기

인사말 다음 줄에 오늘부터 한 편씩 공부합니다. 를 출력하고, 마지막 줄에 100 - 25의 결과를 출력하세요.

해설

Java
public class Hello {
    public static void main(String[] args) {
        System.out.println("안녕하세요. 생각나무 자바 연재입니다.");
        System.out.println("오늘부터 한 편씩 공부합니다.");
        System.out.println(100 - 25);
    }
}

마지막 줄의 출력은 75입니다. 문장은 따옴표 안에, 계산은 따옴표 밖에 둡니다.