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
'Backend > Java' 카테고리의 다른 글
[IntelliJ] Interface 만들기 (0) | 2021.12.06 |
---|---|
[Eclipse] Java Build Path에서 Maven Dependencies 없을 때 (0) | 2021.11.22 |
[Java] DAO, DTO, VO (0) | 2021.11.19 |
[Eclipse] Tomcat의 Context path (root) 설정 (0) | 2021.11.08 |
[JSTL] select option 값 유지 (0) | 2021.11.03 |
댓글