JDK JRE JVM 자바 개발 도구와 실행 환경

자바( Java )를 한번이라도 경험했다면 JDK, JRE, JVM이라는 용어를 접하게 된다.

처음에는 뭔지 잘 모르겠고, 어쨌든 자바로 개발을 할 때 필요하다는 것은 알게 된다.

JDK( Java Development Kit )는 자바 프로그램을 개발하는 데 필요한 컴파일러와 실행 환경을 위한 도구 모음이고, JRE( Java Runtime Environment )는 자바 프로그램을 실행하기 위한 환경이며, JVM( Java Virtual Machine )은 컴파일된 자바 바이트코드를 실행하는 가상 머신이다.

JDK, JRE, JVM 이 세 가지는 서로 관련되어 있고 담당하는 역할은 서로 다르다.

JDK JRE JVM 자바 개발 도구와 실행 환경
JDK JRE JVM 자바 개발 도구와 실행 환경

자바( Java ) 프로그램을 개발하고 실행하려면 자바 개발 도구와 실행 환경이 필요하다.

자바를 이용한 개발을 할 때 필요한 3가지는 JDK, JRE, JVM 이다.

JDK, JRE, JVM 이 3가지는 모두 자바 플랫폼과 관련되어 있고 역할과 목적은 서로 다르다.

JDK는 자바 프로그램을 개발하는 데 필요한 도구이다.

JRE는 자바 프로그램이 실행될 수 있는 환경을 제공한다.

JVM은 자바 바이트코드( .class )를 실행한다.

모두 자바 개발에 필요한 것이고, 자바 개발 환경의 구성과 프로그램 실행에 모두 필요한 것들이다.

JDK JRE JVM
JDK JRE JVM

JDK / Java Development Kit
자바 프로그램 개발 도구

JDK( Java Development Kit )는 자바 개발 키트( 자바 개발 도구 )를 의미한다.

자바 프로그램을 작성하고 컴파일하며 실행하는 데 필요한 도구를 제공하는 소프트웨어 패키지이다.

JDK에는 자바 컴파일러, 실행 도구, 디버깅 도구, 자바 표준 라이브러리, JVM을 포함한 실행 환경 등이 제공된다.

JDK의 대표적인 도구는 다음과 같다.

  • javac : 자바 소스 코드 컴파일
  • java : 자바 프로그램 실행
  • jar : JAR 파일 생성 및 관리
  • javadoc : API 문서 생성
  • jdb : 자바 프로그램 디버깅
  • jlink : 사용자 정의 런타임 이미지 생성

자바 프로그램을 개발하는 경우 일반적으로 JDK를 설치한다.

JDK에는 프로그램 실행에 필요한 구성요소이 포함되어 있으며, 별도의 JRE를 설치할 필요는 없다.

단, 최신 JDK의 디렉터리 구조는 과거 버전과 다를 수 있기 때문에, JDK 설치시 버전은 확인하도록 한다.

JDK / Java Development Kit 자바 프로그램 개발 도구
JDK / Java Development Kit
자바 프로그램 개발 도구

JRE / Java Runtime Enviroment
자바 실행 환경

자바의 JRE( Java Runtime Environment )는 자바 실행 환경을 뜻한다.

컴파일된 자바 프로그램을 실행하는 데 필요한 소프트웨어 구성요소이다.

전통적인 JRE는 JVM과 자바 표준 클래스 라이브러리, 실행에 필요한 지원 파일 등으로 구성된다.

JRE의 주요 역할을 보자.

  • 자바 프로그램 실행 환경 제공
  • JVM 및 표준 라이브러리 제공
  • 컴파일된 자바 프로그램 실행 지원

JRE에는 자바 소스 코드를 컴파일하는 javac와 같은 개발 도구가 포함되지 않으며, 독립형 JRE는 완성된 자바 프로그램을 실행하는 용도로만 사용된다.

JRE / Java Runtime Enviroment / 자바 실행 환경
JRE / Java Runtime Enviroment / 자바 실행 환경

JVM / Java Virtual Machine
자바 가상 머신

JVM( Java Virtual Machine )은 자바 가상 머신을 뜻한다.

자바 컴파일러가 생성한 바이트코드( Bytecode )를 실행하는 가상 실행 환경이다.

자바 소스 코드를 컴파일하면 .class 파일이 생성되며, 이 파일에는 JVM에서 실행을 하기 위한 바이트코드가 저장된다.

JVM은 바이트코드를 읽고 실행하며,
실행 과정에서 필요한 메모리 관리와 가비지 컬렉션 등의 기능을 수행한다.

JVM의 대표적인 역할을 보자.

  • 클래스 로딩
    • 실행에 필요한 클래스 로딩
  • 바이트코드 실행
    • 컴파일된 자바 코드 실행
  • 메모리 관리
    • 객체 및 실행 메모리 관리
  • 가비지 컬렉션
    • 불필요한 객체가 사용하는 메모리 회수
  • JIT 컴파일
    • 실행 중인 일부 바이트코드를 기계어로 컴파일하여 최적화

JVM / Java Virtual Machine / 자바 가상 머신
JVM / Java Virtual Machine / 자바 가상 머신

JDK, JRE, JVM 차이
목적에 따른 역할

자바 프로그램을 개발하기 위한 과정이 참 어렵다. ㅋ

JDK, JRE, JVM의 가장 큰 차이가 있다면 담당하는 역할일 것이다.

  • JDK
    • Java Development Kit
    • 자바 개발 도구
    • 자바 프로그램 개발
    • 컴파일러 포함
    • JVM 포함
    • 표준 라이브러리 포함
    • 개발자, 빌드 환경
  • JRE
    • Java Runtime Environment
    • 자바 실행 환경
    • 프로그램 실행
    • 컴파일러 미포함
    • JVM 포함
    • 표준 라이브러리 포함
    • 실행 환경
  • JVM
    • Java Virtual Machine
    • 자바 가상 머신
    • 바이트코드 실행
    • 컴파일러 미포함
    • JVM 자체 실행 엔진
    • 표준 라이브러리 별도 실행 환경과 연계
    • 자바 프로그램의 실행 처리

JDK, JRE, JVM 의 관계는 자바 배포 구조를 기준으로
JDK가 JRE의 기능을 포함하고, JRE는 JVM을 포함한다.

  • JDK > JRE > JVM

JDK 11 이후에는 JDK 내부에 별도의 jre 디렉터리가 존재하지 않는다.

( 어차피, 설치만 잘되면 큰 문제는 없다. ㅋ )

JDK는 프로그램을 만드는 도구,
JRE는 프로그램을 실행할 환경,
JVM은 프로그램의 바이트코드를 실행하는 엔진 정도로 볼 수 있다.

JDK, JRE, JVM 차이 목적에 따른 역할
JDK, JRE, JVM 차이 목적에 따른 역할

자바 JDK, JRE, JVM의 동작

자바 프로그램은 소스 코드 작성, 컴파일, 실행의 3가지 과정을 거친다.

일반적인 자바 프로그램의 처리 과정은 다음과 같다.

  1. 자바 소스 코드( .java )를 작성
  2. JDK의 javac 컴파일러가 소스 코드( .java )를 컴파일
  3. 컴파일 결과로 .class 바이트코드 파일이 생성
  4. 자바 실행 환경에서 JVM이 바이트코드를 실행
  5. 프로그램의 실행 결과가 화면에 출력

간단한 출력문을 이용해 위의 과정을 만들어 보자.

먼저 자바 코드를 만들어야 할 것이다.

public class Java_Sample {
    public static void main(String[] args) {
        System.out.println("Hello, K-POP RESCENE !! K팝 리센느 ");
    }
}

위의 자바 소스 코드를 확장자 .java 로 저장하고,
JDK의 컴파일러를 이용해 컴파일한다.

참고로, 파일명은 클래스명과 같아야 한다.

javac Hello.java

컴파일에 성공하면 일반적으로 Hello.class 파일이 생성된다.

javac Hello.java
javac Hello.java

java 명령어로 프로그램을 실행한다

java Hello

실행 결과는 다음과 같다.

자바 코드 실행 결과
자바 코드 실행 결과

javac는 JDK가 제공하는 컴파일러이며,
java 명령은 실행 환경을 시작하여,
JVM에서 프로그램을 실행하도록 한다.

자바 JDK, JRE, JVM의 동작
자바 JDK, JRE, JVM의 동작

JRE의 설치

지금의 자바 개발 환경의 경우, JRE를 별도로 설치할 필요가 없다.

이미 JDK에 자바 프로그램을 실행하기 위한 런타임 구성요소가 포함되어 있기 때문이다.

과거 JDK 8에서는 JDK와 JRE가 구분되어 제공되었으며,
JDK 내부에도 jre 디렉터리가 존재했다.

언제인지 기억은 나지 않지만, 자바 플랫폼의 큰 변화가 있었을 무렵, 자바의 모듈화와 배포 구조가 변경되었다.

  • JDK 8
    • JDK와 별도 JRE 제공
    • JDK 내부 jre 디렉터리 존재
  • JDK 9~10
    • 모듈식 런타임 이미지 도입
    • 별도 JDK, JRE 이미지 제공
  • JDK 11 이후
    • Oracle은 별도 JRE 다운로드를 미제공
    • JDK 내부의 별도 JRE 이미지도 제거

JDK 9부터 제공되는 jlink 도구가 제공되고 있는데,
jlink는 프로그램에 필요한 모듈을 선택하여
사용자 정의 런타임 이미지를 생성할 수 있다.

버전의 차이는 실행 환경의 차이가 생길 수 밖에 없는데, 자바 프로그램을 개발하고자 한다면 버전 정도는 확인하자ㅏ.

2026년 11월 1일 기준
Oracle의 최신 Java SE 일반 릴리스는 JDK 27이며,
최신 장기 지원(LTS) 릴리스는 JDK 25이다.

( LTS 버전이 마음이 편하다. )

JRE의 설치
JRE의 설치

JDK 설치 확인

JDK가 설치되어 있는지 확인하려면 명령 프롬프트나 터미널에서 자바 명령어를 실행하면 된다.

명령 프롬프트 실행

윈도우즈 검색창에 cmd를 입력하고 명령 프롬프트를 실행한다.

자바 실행 환경 확인

명령 프롬프트에서 java -version 을 입력하고 실행한다.

해당 명령어가 정상적으로 실행되면 현재 명령어 경로에서 접근 가능한 자바 실행 환경의 버전 정보가 표시된다.

자바 컴파일러 확인

명령 프롬프트에서 javac -version 을 입력하고 실행하여,
자바 컴파일러의 버전 정보를 확인할 수 있다.

java 명령어는 실행되지만 javac 명령어를 찾지 못하는 경우,
런타임만 설치되어 있거나
JDK의 실행 파일 경로를 확인해 보도록 한다.

환경 변수 확인

필요한 경우 Windows의 JAVA_HOME 및 Path 환경 변수를 확인한다.

JAVA_HOME은 JDK의 설치 경로를 지정한다.

Path에는 JDK의 bin 디렉터리를 등록하여
java, javac 등의 명령어를 실행할 수 있도록 설정한다.

JDK 설치 확인
JDK 설치 확인

댓글

비주얼 스튜디오 코드 VSCode 설치하기 - 마이크로소프트 공식 홈페이지

이미지
VSCode( 비주얼스튜디오코드, Visual Studio Code )는 마이크로소프트( Microsoft )에서 제공하는 있는 무료 코드 편집기 프로그램이다. 프로그래밍 언어의 소스 코드를 작성하고 수정하며, 확장 기능을 설치하여 개발 환경을 구성할 수 있다. 윈도우즈, 맥OS, 리눅스( Windows, macOS, Linux )에서 사용할 수 있으며, 공식 홈페이지를 통해 자신의 운영체제에 맞는 설치 파일을 다운로드받고 설치할 수 있다. 윈도우즈의 경우, 인스톨러 파일( Installer )를 이용하여 설치할 수 있다. 설치파일을 다운로드하고 실행한 다음 화면의 안내에 따라 VSCode 설치를 진행하면 된다. 설치가 완료되면 VSCode를 실행하여 자신이 원하는 코드를 작성할 수 있다. 비주얼 스튜디오 코드 설치하기 - 마이크로소프트 공식 홈페이지 VSCode 무료 소스 코드 편집기 VSCode(비주얼 스튜디오 코드, Visual Studio Code)는 Microsoft에서 개발한 무료 소스 코드 편집기이다. 소스 코드란 컴퓨터 프로그램을 만들기 위해 프로그래밍 언어로 작성한 명령문의 집합이며, VSCode에서 소스 코드를 작성하고 수정할 수 있다. VSCode의 특징을 보자. 무료 사용 VSCode 기본 프로그램을 무료로 다운로드하여 사용 다중 운영체제 Windows, macOS, Linux를 지원 코드 편집 여러 프로그래밍 언어의 소스 코드를 작성하고 수정 가능 확장 기능 Extensions를 이용하여 언어 지원과 개발 도구를 추가 디버깅 지원되는 언어와 개발 환경에서 프로그램 오류를 조사 Git 통합 Git을 이용한 소스 코드 변경 관리 기능을 제공 VSCode 자체는 코드 편집기이고 프로그래밍 언어에 따라 컴파일러, 실행 환경, 개발 도구 등을 별도로 설치해야 할 필요가 있다. 만약, Java 프로그램을 개발할 때는 VSCode 외에 JDK와 관련 확장 기능이 필요하다. VSCode 무료 소스 코드 편집기 VSCode 설치 전 확인 사항 VSCo...

이 블로그의 인기 게시물

ChatGPT Codex GitHub 연결 해제 방법 (앱 삭제까지 정리)

C언어 return 종류와 차이 | return, return 0, return -1, return n

C언어 프로그램 종료 방법 3가지 비교 (실전 예제 포함) | exit() abort() 함수 사용 방법