백엔드/Java

[Java] JDK와 JRE의 차이

an_apricot__ 2021. 5. 31. 16:06

 

1. JDK(Java Development Kit)

  • JDK = JRE + 개발 도구
  • JDK는 Java 프로그램을 개발하고 실행하는 데 필요한 전체 패키지
  • 컴파일러(javac), 디버거(jdb), JAR 생성 도구(jar) 등을 포함
  • 개발 목적일 때 필요
JRE Java 프로그램 실행 환경 (JDK 안에 포함)
javac Java 컴파일러 (.java → .class)
java Java 실행 명령어 (.class 파일 실행)
jar JAR 파일을 생성하는 도구
jdb Java 디버거 (디버깅 도구)
jshell Java 코드 테스트 도구 (JDK 9부터 지원)

 


2. JRE(Java Runtime Environment)

  • JRE = Java 실행 환경 (JVM + 필수 라이브러리 포함)
  • JRE는 Java 프로그램을 실행하는 데 필요한 환경
  • Java 애플리케이션 실행은 가능하지만, 개발(컴파일) 불가능
  • Java 프로그램 실행만 필요할 경우
  • javac(컴파일러) 없음 → Java 코드 수정 불가
  • Java 애플리케이션 실행만 가능 (java 명령어 사용 가능)
JVM (Java Virtual Machine) 바이트코드를 실행하는 가상 머신
Java API 라이브러리 rt.jar (String, List, HashMap 등 기본 API 포함)
java 실행 파일 Java 애플리케이션 실행 (java 명령어)

 


JDK vs JRE 차이점 요약

구분 JDK JRE
설명 Java 개발 & 실행 가능 Java 실행만 가능
포함 관계 JDK 안에 JRE 포함 JDK가 필요 없음
Java 실행 (java 명령어) ✅ 가능 ✅ 가능
Java 컴파일 (javac 명령어) ✅ 가능 불가능
개발 도구 (디버거, JAR 생성 등) ✅ 포함 없음
사용 대상 개발자 (개발 + 실행) 일반 사용자 (실행만)