첫 Java 프로그램
Hello.java를 직접 저장하고 javac로 컴파일한 뒤 java로 실행합니다.
첫 프로그램의 목적은 문법을 많이 배우는 것이 아니라 작성 → 컴파일 → 실행의 한 바퀴를 성공시키는 것입니다.
편집기는 메모장, Visual Studio Code, IntelliJ IDEA 등 무엇을 사용해도 됩니다.
다만 서식 있는 문서가 아니라 일반 텍스트로 저장해야 합니다.
5줄짜리 Hello World
java-board/src 폴더에 Hello.java 파일을 만들고 다음 내용을 그대로 저장합니다.
public class Hello {
public static void main(String[] args) {
System.out.println("Hello, Java!");
}
}처음에는 모든 단어를 외울 필요가 없습니다.
각 줄의 역할은 다음과 같습니다.
public class Hello는Hello라는 프로그램 단위를 선언합니다.- 첫
{와 마지막}는Hello에 속하는 범위를 표시합니다. main은 프로그램이 시작할 위치입니다.System.out.println(...)은 괄호 안의 글을 한 줄 출력합니다.- 세미콜론
;은 출력 문장이 끝났음을 표시합니다.
Java는 대소문자를 구분합니다.
hello, Hello, HELLO는 서로 다른 이름입니다.
공개 클래스 이름이 Hello이므로 파일명도 정확히 Hello.java여야 합니다.
컴파일하기
PowerShell이 java-board 폴더에 있는지 확인한 뒤 다음 명령을 실행합니다.
javac -d out src/Hello.java아무 메시지도 나오지 않으면 컴파일에 성공한 것입니다.
성공한 명령이 조용히 끝나는 것은 이상한 일이 아닙니다.
out 폴더를 확인합니다.
Get-ChildItem outHello.classHello.java는 사람이 편집하는 소스 파일이고 Hello.class는 javac가 만든 실행용 파일입니다.
.class를 편집하지 않습니다.
실행하기
다음 명령에서 -cp out은 실행할 클래스를 out 폴더에서 찾으라는 뜻입니다.
마지막 Hello는 파일 경로가 아니라 실행할 클래스 이름이므로 .class를 붙이지 않습니다.
java -cp out HelloHello, Java!이 출력이 보이면 작성·컴파일·실행 세 단계가 모두 성공했습니다.
src/Hello.java --javac--> out/Hello.class --java--> 화면 출력소스를 바꾸면 다시 컴파일한다
출력 문자열을 다음처럼 바꿔 저장합니다.
System.out.println("회원가입 시작");java 명령만 다시 실행하면 이전 출력이 나옵니다.
JVM은 방금 고친 .java 파일이 아니라 기존 Hello.class를 실행하기 때문입니다.
먼저 다시 컴파일한 뒤 실행합니다.
javac -d out src/Hello.java
java -cp out Hello회원가입 시작IDE의 실행 버튼은 저장과 컴파일을 대신 처리할 수 있습니다.
이 교재에서는 각 단계가 보이도록 처음에는 터미널 명령을 사용합니다.
첫 소스를 읽는 순서
긴 선언을 한 덩어리로 외우기보다 바깥에서 안쪽으로 읽습니다.
class Hello: Hello라는 클래스의 범위main: 실행이 시작되는 메서드의 범위println: 실제로 실행할 출력 문장
클래스와 메서드가 정확히 무엇인지는 뒤 장에서 작은 예제로 다시 배웁니다.
지금은 중괄호의 짝과 문장의 실행 순서를 확인합니다.
연습 문제
src/NewMember.java를 만들고 가입할 이메일과 역할을 두 줄로 출력하세요.
email=kim@example.com
role=member파일명과 공개 클래스 이름을 NewMember로 맞추고 다음 명령으로 확인합니다.
javac -d out src/NewMember.java
java -cp out NewMember