자바 프로그램을 개발하기 위해서는 우선 파일 확장명이 .java인 텍스트 파일을 생성하고 자바 언어로 코드를 작성해야 합니다. 이렇게 만들어진 자바 소스 파일을 javac 명령어로 컴파일합니다. 컴파일이 성공하면 확장명이 .class인 바이트 코드 파일이 생성됩니다.

바이트 코드 파일은 완전한 기계어가 아니므로 바로 실행할 수 있는 파일이 아닙니다. 바이트 코드 파일을 완전한 기계어로 번역해서 실행하려면 java 명령어를 사용해야 합니다.

java 명령어 실행

 

 

 


✅바이트 코드 파일과 자바 가상 기계

자바 프로그램은 완전한 기계어가 아닌, 바이트 코드byte code 파일(.class)로 구성됩니다. 바이트 코드 파일은 운영체제에서 바로 실행할 수 없고, 자바 가상 기계JVM: Java Virtual Machine라는 번역기가 필요합니다. (자바 가상 기계는 ‘기계’라는 표현이 있지만 하드웨어가 아니고, JDK에 포함되어 있는 소프트웨어입니다.)

 

자바가 JVM을 사용하는 이유는 바이트 코드 파일을 다양한 운영체제에서 수정하지 않고 사용할 수 있도록 하기 위함입니다. 이 특징이 자바 언어를 성공으로 이끌었다고 볼 수 있습니다. 예를 들어 개발자는 윈도우 운영체제에서 편하게 프로그램(바이트 코드 파일)을 개발하고, 개발 완료된 프로그램은 리눅스로 옮겨 바로 실행할 수 있습니다.

 

자바 JVM

javac 명령어로 컴파일된 바이트 코드 파일은 JDK가 설치된 어떠한 운영체제에서도 java 명령어로 동일하게 실행할 수 있습니다. 각 운영체제의 JVM은 바이트 코드 파일을 해당 운영체제에서 실행 가능한 기계어로 번역해서 실행하기 때문입니다.

 

 

 


 

✅ 프로젝트 생성부터 실행까지

이클립스에서 자바 프로그램을 작성하고, 실행하는 방법을 단계별로 실습해보겠습니다.

 

☑️[1단계] 프로젝트 생성

이클립스에서 자바 소스 파일을 작성하려면 우선 자바 프로젝트를 생성해야 합니다.

 

01 자바 프로젝트를 생성하기 위해 [File] – [New] – [Java Project] 메뉴를 선택합니다. 만약 [Java Project] 메뉴가 보이지 않는다면 [Window] – [Perspective] – [Open Perspective] – [Java] 메뉴를 선택해서 Java 퍼스펙티브로 변경합니다. 

이클립스에서 자바 프로젝트 생성

 

 

02 [New Java Project] 대화상자가 나타나면 [Project name] 입력란에 새 프로젝트명으로 ‘chap01’을 입력하고, 일반 프로젝트로 생성하기 위해 [Create module-info.java file]을 체크 해제합니다. 나머지는 다음과 같이 기존 설정을 유지한 채 [Finish] 버튼을 클릭합니다.

eclipse new java project

[New Java Project] 대화상자의 설정 내용은 다음과 같습니다.

① [Project name] 입력란에 새로운 프로젝트명 ‘chap01’을 입력합니다.
② [Location] 입력란에서 프로젝트 폴더 생성 경로를 확인합니다.
③ [JRE]에서 사용할 Java 버전으로 ‘JavaSE-21’을 선택합니다.
④ [Project layout]은 기본적으로 자바 소스 파일(.java)과 컴파일된 바이트 코드 파일(.class)을 분리해서 저장하도록 설정되어 있습니다.
⑤ [Module]에서 [Create module-info.java file]을 체크 해제합니다.

 

 

☑️[2단계] 소스 파일 생성과 작성

Hello.java 소스 파일을 생성하고, “Hello, Java”를 출력하는 코드를 작성해보겠습니다.

 

01 Package Explorer 뷰에서 chap01 프로젝트의 src 폴더를 선택하고 마우스 오른쪽 버튼을 클릭한 후 [New] – [Package]를 선택합니다.

eclipse package explorer new package

*여기서 잠깐: 패키지란?

자바는 소스 파일 및 컴파일된 바이트 코드 파일들을 기능별로 쉽게 관리하기 위해 패키지(Package)를 사용합니다. 패키지는 마치 파일 시스템의 폴더(디렉토리)와 비슷합니다.

 

 

02 [New Java Package] 대화상자에서 [Name] 입력란에 패키지 이름으로 ‘sec03.exam01’을 입력하고 [Finish] 버튼을 클릭합니다.

New Java Package

 

 

03 Package Explorer 뷰에서 sec03.exam01 패키지를 선택하고 마우스 오른쪽 버튼을 클릭한 후 [New] – [Class]를 선택합니다.

eclipse package explorer new class

 

 

04 [New Java Class] 대화상자에서 [Name] 입력란에 클래스 이름인 ‘Hello’를 입력합니다. 그리고 main() 메소드를 자동으로 추가하기 위해 [public static void main(String[] args)]를 체크한 후 [Finish] 버튼을 클릭합니다.

public static void main(String[] args)

① Source folder: 패키지가 생성될 폴더를 말합니다.
Package: 자바 소스 파일이 포함될 패키지를 말합니다.
③ Name: 자바 소스 파일의 이름이자, 작성할 클래스 이름이기도 합니다. 항상 첫 글자를 대문자로 작성하는 것이 관례입니다.
public static void main(String[] args): 자바 소스 프로그램을 컴파일한 후 실행하려면 반드시 추가해야 합니다.

 

 

05 Package Explorer 뷰를 보면 sec03.exam01 패키지 안에 Hello.java 소스 파일이 생성된 것을 볼 수 있습니다. Hello.java 편집 뷰도 자동으로 같이 열립니다.

.java 소스 파일 생성

 

 

06 Hello.java 편집 뷰에서 다음과 같이 작성합니다. 작성을 완료한 후 [File] – [Save] 메뉴를 실행하여 소스 파일을 저장하면 자동으로 컴파일됩니다. 이클립스는 컴파일을 위한 메뉴가 따로 없습니다.

package sec03.exam01;

public class Hello {
    public static void main(String[] args) {
        System.out.println("Hello, Java");
    }
}
  • 3라인에서 Hello의 H가 대문자로 작성되어야 합니다(파일명과 대소문자가 동일).
  • 4라인에서 String의 S가 대문자로 작성되어야 합니다.
  • 5라인에서 System의 S가 대문자로 작성되어야 합니다.
  • 5라인 끝에 세미콜론(;)을 붙여줍니다.

자바 소스 코드 작성

만약 코드 일부분에 빨간색 밑줄이 보인다면 해당 부분이 잘못 작성된 것입니다. 빨간색 밑줄이 나오지 않도록 수정하고 소스 파일을 저장해주세요.

 

*여기서 잠깐: 파일 편집 택에서 *의 의미

파일을 수정하고 저장하지 않으면 편집기 상단에 있는 탭의 파일명 앞에 *가 붙습니다. 파일을 수정한 후에는 반드시 저장하는 습관을 갖는 것이 좋습니다. [파일] – [저장] 메뉴를 선택해도 좋고, 단축키 Ctrl + S 를 입력해도 좋습니다.

 

 

07 성공적으로 컴파일되면 자동 컴파일된 바이트 코드 파일은 C:\SelfStudyJava\chap01\bin 폴더 내부에 패키지 폴더(sec03\exam01)와 함께 Hello.class로 생성됩니다.

컴파일 후 .class 생성

 

 

☑️[3단계] 바이트 코드 실행

이클립스에서 생성된 바이트 코드 파일을 실행하는 방법은 아주 간단합니다.

 

01 Package Explorer 뷰에서 소스 파일 Hello.java를 선택하고 툴 바에서 Run(▶아이콘)을 클릭해서 바이트 코드 파일을 실행합니다.

이클립스 바이트 코드 실행

 

바이트 코드 파일은  Package Explorer 뷰에서 소스 파일 Hello.java를 선택하고, 마우스 오른쪽 버튼을 클릭한 후 [Run As] – [Java Application]을 선택해서 바이트 코드 파일을 실행할 수 있습니다.

이클립스 바이트 코드 실행 방법

 

 

02 성공적으로 실행되면 Console 뷰에 “Hello, Java”가 출력됩니다.

이클립스 콘솔 뷰

 

 

 


 

✅ 프로그램 소스 분석

Hello.java 소스 파일을 보면 최상단에 package 키워드와 sec03.exam01이 명시되어 있습니다. Hello.java는 sec03.exam01 패키지에서 생성되었기 때문에 이와 같은 패키지 선언이 반드시 있어야 합니다.

package sec03.exam01;

 

다음은 클래스 선언입니다.

자바 클래스 선언

중괄호 {} 블록의 앞부분인 public class Hello를 클래스 선언부라고 합니다. public class는 공개 클래스라는 뜻이고, Hello는 클래스 이름입니다. 클래스 이름은 소스 파일명과 동일해야 하며, 대소문자도 일치해야 합니다. 클래스는 필드 또는 메소드를 포함하는 블록, 메소드는 어떤 일을 처리하는 실행문들을 모아 놓은 블록을 말합니다.

javac 명령어로 컴파일하면 클래스 이름에 .class가 붙어 바이트 코드 파일이 생성됩니다. 일반적으로 Hello.class를 Hello 바이트 코드 파일이라고 부르지 않고 Hello 클래스라고 간단히 부릅니다. java 명령어로 바이트 코드 파일을 실행하려면 클래스 블록 내부에 다음과 같은 main() 메소드 블록을 가지고 있어야 합니다.

 

자바 메소드 선언

중괄호 {} 블록의 앞부분인 public static void main(String[] args)를 메소드 선언부라고 합니다. 그리고 괄호 () 바로 앞의 main은 메소드 이름입니다. java 명령어로 바이트 코드 파일을 실행하면 제일 먼저 main() 메소드를 찾아 블록 내부를 실행합니다. 그래서 main() 메소드를 프로그램 실행 진입점entry point이라고 부릅니다.

 

 

 

 


혼자 공부하는 자바(개정판)

위 내용은 『혼자 공부하는 자바』의 일부분을 재구성하여 작성하였습니다.

핵심 내용 위주로 구성하여 이제 막 자바를 배우기 시작한 입문자도 포기하지 않고 완독할 수 있습니다. 자바 입문부터 복습까지, 혼자 공부하는 자바를 펼쳐보세요!

👀 도서 자세히 보기
✍️ 유튜브 강의
🙋 신용권 저자님께 질문하기