본문 바로가기
Backend/Java

[Java] About JVM, JRE, JDK

by unknownomad 2021. 11. 17.

JVM, JRE, JDK

자바 프로그래밍에 사용되는 3대 핵심 기술

 


JVM: Java Virtual Machine

 

1. 정의

자바 소스로 만들어지는 자바 바이트 코드 실행

 

2. 역할

  • 바이트 코드 읽기 ➡ 검증 실행
  • 실행 환경(Runtime Environment) 규격 제공(필요 라이브러리 및 기타 파일 등)

 

3. 특징

  • 플랫폼에 의존적(리눅스의 JVM != 윈도우즈의 JVM)
  • But 컴파일된 바이트 코드는 어떤 JVM에서든 실행 가능

JRE: Java Runtime Environment

 

1. 정의

  • 컴파일된 자바 프로그램을 실행시킬 수 있는 자바 환경
  • 자바 코드 실행 위한 도구들로 구성된 패키지(자바 프로그램 실행 위해 설치 필수)

 

2. 역할

  • 자바 프로그램 구동 위한 독립형 구성 요소로 사용 가능, but JDK의 일부이기도 함
  • JVM이 자바 프로그램 실행 시 필요한 라이브러리 파일 및 기타 파일 가지고 있음
    (JVM의 실행 환경을 구현했다 할 수 있음)

 

3. JRE vs JDK

  • 개발의 일환인 자바 프로그램 구동 위해 JDK는 JRE 필요
  • JRE에 자바 프로그래밍 도구는 미포함 > 자바 프로그래밍 위해 JDK 필요
  • 즉, JRE는 읽기 전용

JDK: Java Development Kit

 

1. 정의

  • 자바 기반 소프트웨어 개발 위한 도구들(javac, java 등)로 이루어진 패키지
  • 자바 애플리케이션 구축 위한 핵심 플랫폼 구성요소

 

2. 기술적 / 일반적 의미

  • 기술: 컴파일러와 클래스 라이브러리를 포함하는 자바 플랫폼 사양서의 구현
  • 일반: 개발자가 자바 기반 애플리케이션 개발 위해 다운로드하는 소프트웨어 패키지

 

3. 역할

개발자가 JVM, JRE에 의해 실행 및 구동되는 자바 프로그램을 생성할 수 있게 해줌

 

4. JDK vs JRE

JDK = JRE + a (읽기 / 쓰기 전용, JDK 설치 시 JRE도 같이 설치됨)

 


출처

https://medium.com/@mannverma/the-secret-of-java-jdk-jre-jvm-difference-fa35201650ca

https://goodgid.github.io/Java-JDK-JRE/

https://sangwoo0727.github.io/java/JAVA-2_jdk/

댓글