[Java] 자바 프로그램 구동(JVM,JRE,JDK)

자바 프로그램의 구동

  • 어셈블리어 : 기계어를 사람이 알아들을 수 있도록 바꿔줬지만, 기종별 어셈블리어가 필요함

  • C언어 : 하나의 소스로 다른 기종 간의 이식성이 확보되었지만, 운영체제별로 소스 구현하는 작업이 필요함

  • 자바 : 운영체제가 어떻든 단 하나의 JVM(가상기계) 용 기계어를 생성하므로(단 기종별 JRE 세팅이 필요), 운영체제에 상관없이 오브젝트 파일만 있으면 실행됨

  • 운영체제에 상관없이 오브젝트 파일로 실행되는 이유 : .java 파일로 작성한 자바파일이 .class파일로 컴파일되어 실행되는데, 운영체제에 맞는 JRE만 갖춰져있으면 컴파일에 의한 실행이 운영체제와 상관없이 독립적으로 실행되기 때문이고, JRE는 JDK에 포함되어 설치된다.

JVM, JRE, JDK

  • JVM : 자바 가상 기계(Java virtual machine), 자바의 구동 과정 중 구동되는 가상의 컴퓨터를 말한다. 물리적인 컴퓨터의 하드웨어와 같은 역할을 한다.

  • JRE : Java Runtime Environment(자바 실행 환경), 자바의 구동 중 JVM을 제어하는 JVM용 OS로써, 물리적인 컴퓨터의 운영체제와 같은 역할을 하며, 컴파일 할 때 운영체제에 맞는 JRE를 세팅해줘야 한다. 자바 프로그램 실행기(java.exe) 포함

  • JDK : Java Development Kit(자바 개발 도구), 자바의 구동은 JDK의 개발을 이용해 이루어지는, JVM용 소프트웨어 개발도구이며, 물리적인 컴퓨터의 소프트웨어 개발 도구와 같은 역할을 한다. 자바 소스 컴파일러(javac.exe) 포함

  • JDK를 이용하여 프로그램을 개발하고, 이 프로그램은, JRE에 의해 JVM에서 실행된다.

실행 프로세스

  • 실행 그림