JDK vs JRE
1. JDK, JRE
1.1. JDK (Java Development Kit)
애플리케이션을 개발하기 위한 소프트웨어 개발 도구입니다.
자바로 코드를 작성하고 컴파일하는 데 필요한 툴과 라이브러리들이 포함된 패키지입니다.
1.2. JRE (Java Runtime Environment)
자바 프로그램이 실행될 수 있는 환경(Environment)를 제공하며 실행에 초점을 둡니다. JVM 등, 자바 프로그램을 실행하는데 필요한 라이브러리와 클래스 파일들을 포함하고 있습니다.
실행할떄는 JRE만 설치되어도되며, 개발도구는 포함되지 않습니다.
1.3. JDK 구성요소
JRE (Java Runtime Environment) 자바 프로그램을 실행하기 위한 환경 제공
컴파일러 컴파일러를 통해 자바 소스 파일을 바이트 코드로 변환합니다. 사람이 읽을 수 있는 .java 파일을 바이트 코드(.class)로 변환합니다.
인터프리터 컴파일된 바이트 코드를 실제로 실행하는 것.
Javadoc 소스 파일에 작성된 주석을 기반으로 API 문서를 자동으로 생성해줍니다.
JAR (Java Archive Tool) 여러 개의 클래스 파일을 압축하여 하나의 파일로 묶는 툴
JDB (Java Debugger)
Keytool 자바 애플리케이션에서 사용할 인증서를 관리하는 도구
1.4. JRE 구성요소
JVM (Java Virtual Machine) 자바 프로그램이 실행되는 가상 머신. JVM은 독립적인 환경을 제공하며, 이를 통해 자바 프로그램은 한번 작성하면 다양한 플랫폼에서 실행될 수 있습니다.
클래스 라이브러리 원활하게 실행하기 위한 표준 라이브러리 포함. (java.lang, java.util, javaj.io 등)
클래스 로더 자바 클래스 파일을 메모리에 로드
메모리 관리 GC를 통해 메모리를 자동으로 관리
2. JDK와 JRE의 차이점
JDK와 JRE의 가장 큰 차이점은 목적입니다. JDK는 개발을 위한 도구 모음이며, JRE는 실행을 위한 환경입니다. JDK에는 JRE가 포함되어 있으므로, JDK를 설치하면 JRE도 자동으로 설치됩니다.
용도
자바 애플리케이션 개발
자바 애플리케이션 실행
포함 요소
JRE, 컴파일러, 디버거 등
JVM, 클래스 라이브러리 등
대상
개발자
최종 사용자
3. 자바 프로그램 실행 과정
소스 코드 작성
컴파일: JDK의 javac를 사용
컴파일러가 바이트 코드 생성
컴파일 타임 에러 검사
실행: JRE의 JVM을 통해 실행
클래스 로더를 통해 파일을 메모리에 로드
인터프리터를 통해 한줄씩 기계어로 변환 및 실행
GC를 통해 더 이상 사용되지 않는 객체들을 메모리에서 제거
Last updated