JVM (Java Virtual Machine)란?
: 자바를 실행하기 위해 반드시 필요한 가상 프로그램
- 컴파일된 바이너리 코드(
.class)를 실행할 때, 프로그램이 실행되는 OS에 맞게 컴퓨터가 해석할 수 있는 기계어로 변환해줌
Java Application과 일반 Application의 구조 차이

- 일반 Application은 OS와 바로 맞붙어 있기에 OS 종속적
- Application을 OS의 종류에 따라 변경해야함
- 예) C언어는 OS의 종류가 달라지면 해석하지 못함
- Java Application은 다양한 OS를 지원하는 JVM과 소통하므로 OS 독립적
- Application을 OS의 종류와 상관없이 동일한 코드로 실행 가능
JRE (Java Runtime Environment)란?
: JVM + JVM이 자바 프로그램을 실행할 때 필요한 라이브러리 파일들과 기타 파일들
- 따라서, JRE 설치로 자바 프로그램을 실행할 수 있음
JDK (Java Development Kit)란?
: JRE + 프로그래머가 개발을 위해 필요한 도구 (java 컴파일용인 javac, java, java 디버깅용인 jdb, 서로 연관 있는 클래스들을 묶어주는 jar 등)
- 종류 : Oracle JDK (상업적 용도로는 유료, 개인은 무료), Open JDK (무료)
JVM VS JRE VS JDK
