이세개발
article thumbnail

1. 소스작성에서부터 실행 까지

 

자바 프로그램을 개발하려면 다음과 같은 순서로 진행해야 한다.

자바 프로그램을 개발하기 위해서는 우선 파일 확장명이 .java 인 텍스트 파일을 생성하고 프로그램 소스를 작성한다.

이렇게 만들어진 파일을 자바 소스파일이라고 한다. 작성 완료된 자바 소스파일은 컴파일러 (javac.exe) 로 컴파일 해야 한다.

컴파일이 성공되면 확장명이 .class 인 바이트 코드 파일이 생성된다. 예를들어, 명령 프롬프트에서 Hello.java 소스 파일을 다음과 같이 컴파일하면 Hello.class 파일이 생성된다

------------------

javac hello.java

------------------

바이트 코드 파일은 완전한 기계어가 아니므로 단독으로 실행 할 수 없고 JVM이 실행되어야 한다.

JVM을 구동시키는 명령어는 java.exe 이다. 예를들어 Hello.class 라는 바이트 코드 파일을 java.exe로 실행하려면 명령 프롬프트에서 다음과 같이 입력하면된다, 주의할 점은 java.exe로 바이트 코드파일을 실행할 때는 .class 확장명을 제해야 한다.

--------------------

java hello

-------------------

 

java.exe 명령어가 실행되면 JVM은 바이트 코드 파일을 메모리로 로드하고, 최적의 기계어로 번역한다. 그리고 main()메소드를 찾아 실행시킨다.

자바 소스 작성에서부터 실행까지의 과정을 도식화 하면 다음과 같다.

 

 

 

 

 

 

 

 

 

 

실습

 

 

메모장을 실행하고 [파일]-[다른이름으로 저장] 메뉴를 선택.

저장위치를 C:/temp 디렉토리로 변경후 파일이름에 "Hello.java" 를 입력후 [저장]

다음과같이 자바 소스파일을 작성하고 저장

 

--------------------

 

public class hello {

  public static void main(String[] args) {

     System.out.printIn("Hello, welcome to the java world!");

    }

}

 

---------------------

 

명령프롬프트를 실행시키고, C:/Temp 디렉토리로 이동하기 위해 다음과 같이 입력

------------

C:/~/administrator>cd c:/Temp

-------

 

or

 

-------

cd c:/temp

---------

 

 

소스파일이 있는지 확인하기 위해 dir 명령어를 실행해본다.

-----

dir

-----

 

컴파일러로 Hello.java 소스파일을 컴파일한다.

--------

c:/temp>javac Hello.java

-----------

 

제대로 컴파일이 완료되었는지 확인하기 위하여 dir 명령어를 한번더 실행한다.

---------

dir

-------

 

Hello.class 를 실행하기 위해 JVM 구동 명령어인 java.exe를 다음과 같이 입력한다.

 

----------

C:/temp>java Hello

----------

 

 

 

2. 프로그램 소스 분석

 

Hello 프로그램의 소스 작성에서부터 실행까지 해보았다면, 이제 이 프로그램이 어떻게 "Hello, welcome to the java world!" 를 출력 할 수 있었는지 살펴보자.

자바 실행 프로그램은 반드시 클래스(class) 블록과 main() 메소드(method) 블록으로 구성되어야 한다.

메소드 블록은 단독으로 작성될 수 없고 항상 클래스 블록 내부에서 작성되어야 한다.

클래스와 메소드를 간단하게 설명하면 다음과 같다.

* 클래스 : 필드 또는 메소드를 포함하는 블록

* 메소드 : 어떤 일을 처리하는 실행문들을 모아놓은 블록

 

클래스에는 이름이 있는데, Hello 가 클래스 이름이고, 그 다음에 있는 중괄호( { ) 부터 그와 짝을 이루는 중괄호 ( } ) 까지가 클래스 블록이다.

클래스의 이름은 개발자 마음대로 정할수 있지만 소스파일명과 대소문자가 일치해야 하고 숫자로 시작할 수 없고 공백을 포함하면 안된다.

클래스 블록에는 메소드를 작성할 수 있는데, 메소드는 클래스처럼 이름과 블록을 가진다. main이 메소드 이름이고, 중괄호부터 그와 짝을이루는 중괄호 까지가 메소드 블록이다.

메소드 이름도 개발자가 마음대로 정할 수 있지만 main()메소드만큼은 다른 이름으로 바꾸면 안 된다. 왜냐하면 java.exe로 JVM을 구동시키면 제일 먼저 main()메소드를 찾아서 실행시키기 떄문이다. 그래서 main()메소드를 프로그램 실행 진입점(entry point) 라고 한다.

만약 클래스 내부에 main() 메소드가 없거나 잘못 작성하면 클래스를 실행할 수 없다.

main()메소드가 없는 클래스를 java.exe 로 실행시키면 다음과 같은 에러 메세지가 나타난다.

-------------

오류 : Hello 클래스에서 기본 메소드를 찾을 수 없습니다. 다음 형식으로 기본 메소드를 정의하십시오.

        public static void main(String[] args)

----------------

 

메소드 블록에는 실행문이 작성되는데, main() 메소드 블록의 System.out.printIn ("Hello, welcome to the java world"); 이 실행문에 해당한다.

실행문 끝에는 반드시 세미콜론(;) 을 붙여야 한다. 그렇지 않으면 컴파일 에러가 발생한다.

제대로 작성을 했다면 위 실행문은 ()괄호 안에있는 Hello,welcome to the java world 문자열을 출력시킨다.

main() 메소드 블록이 모드 실행되면 Hello 프로그램은 종료되게 된다.

 

 

profile

이세개발

@print(name)

포스팅이 좋았다면 "좋아요❤️" 또는 "구독👍🏻" 해주세요!