Language/Java

[Java] 프로그램 실행 과정

byunghyun23 2020. 12. 7. 13:57

Java프로그램의 실행에서 컴파일 과정은 다음과 같다.

 

Java 컴파일 과정

 

1. 컴파일러 (Compiler)

  • java 파일(소스 코드)을 class 파일(바이트 코드)로 변환 

 

2. 자바 가상 기계 (JVM : Java Virtual Machine)

  • class 파일을 운영체제에 맞는 기계어로 번역 후 실행

 

 

※ C Language vs Java Language

  C Java
빌드 결과 exe 생성 (windows 기준) class 생성
실행 OS JVM
플랫폼 의존 종속적 독립적

C언어는 빌드하면 운영체제가 실행할 수 있는 이진 파일을 생성한다. 반면에 Java는 가상 기계가 실행할 수 있는 class 파일을 생성한다. 때문에 C언어는 운영체제가 변경되면 그에 맞게 빌드를 새로 해야하며 운영체제마다 시스템 라이브러리가 다르기 때문에 소스 코드 변경이 필요할 수도 있다. 프로그램 개발/배포에 있어서 매우 비효율적인 방법이다.

Java는 C언어와 달리 JVM으로 실행할 수 있는 class 파일을 빌드하기 때문에 플랫폼에 독립적인 특징을 가지고 있다.

개발자는 운영체제에 상관없이 빌드하여 배포하면 된다.

하지만 JVM은 플랫폼에 종속적이다. class 파일을 각 운영체제가 이해할 수 있는 기계어로 번역해야 하기 때문이다.

그러므로 반드시 운영체제에 맞는 JVM을 설치해야 한다.