JVM (Java Virtual Machine)
뜻을 풀이하게 되면 자바 가상 머신이라는 용어이다.
정의: 자바 가상 머신으로, 자바 바이트코드를 OS가 이해할 수 있도록 변환하고 실행해주는 가상 실행 환경입니다.
역할:
자바 바이트코드(.class 파일)를 읽고 해석하여 기계어로 변환
운영체제(OS)에 독립적으로 자바 프로그램을 실행
메모리 관리, 가비지 컬렉션(GC), 예외 처리 등을 수행
특징:
플랫폼 독립성: JVM만 설치되어 있다면 어떤 OS에서도 동일한 자바 프로그램을 실행할 수 있습니다.
자바가 OS 독립성을 가질 수 있는 핵심 요소입니다.
한마디로: JVM은 자바 바이트코드를 실행해주는 가상 머신입니다.
JRE (Java Runtime Environment)
뜻을 풀이하면 자바 실행 환경.
정의: JVM을 포함하여, 자바 프로그램을 실행하는 데 필요한 최소한의 환경(라이브러리 등)을 제공하는 패키지입니다.
구성 요소:
JVM (필수 포함)
자바 실행환경 라이브러리(java.lang, java.util 등 기본 패키지)
런타임 클래스, 필수적인 자바 라이브러리 등
용도:
자바 프로그램을 개발 없이 단순히 실행만 하고 싶을 때 필요합니다.
일반 사용자 또는 클라이언트 환경에 설치됩니다.
한마디로: JRE는 자바 프로그램을 실행하는 데 필요한 환경을 갖춘 패키지입니다. (개발 도구는 없음)
JDK (Java Development Kit)
뜻을 해석하면 자바 개발 도구.
정의: 자바 개발에 필요한 모든 도구가 포함된 소프트웨어 개발 키트입니다.
구성 요소:
JRE (JVM + 라이브러리)
개발 도구들: 컴파일러(javac), 디버거(jdb), 문서 생성기(javadoc) 등
용도:
자바 프로그램을 개발하고, 컴파일하며 배포하는 데 필수입니다.
프로그래머, 개발자가 반드시 설치해야 합니다.
한마디로: JDK는 자바 프로그램 개발을 위한 필수 도구를 제공하는 개발자용 키트입니다.
현재는 오라클 자바(Java 11 이상)에서 JRE를 별도로 제공하지 않으며, 보통 JDK를 설치하면 모든 것이 해결됩니다.