자바(Java)로 애플리케이션을 개발하고 실행할 때, 우리는 JRE와 JDK라는 두 가지 중요한 개념을 접하게 된다. 이 둘은 모두 자바 환경에서 필수적이지만, 그 역할과 기능에 있어 차이가 있다.
1. JRE(Java Runtime Environment)
JRE는 자바 애플리케이션을 실행하는 데 필요한 환경을 제공한다. 여기에는 자바 프로그램을 실행하기 위한 JVM(Java Virtual Machine), 클래스 라이브러리, 그리고 필요한 실행 파일들이 포함된다.
- 주요 구성 요소
- JVM(Java Virtual Machine) : 자바 프로그램이 다양한 운영체제에서 동일하게 실행될 수 있도록 해주는 핵심 요소이다. 자바의 중간 코드인 바이트코드를 운영체제에서 실행할 수 있는 기계어로 변환한다.
- 클래스로더 : 자바 애플리케이션을 구성하는 클래스와 라이브러리를 동적으로 로드하여 프로그램이 실행될 때 필요한 자원을 제공한다.
- 라이브러리 : 자바 프로그램에서 사용할 수 있는 다양한 표준 라이브러리와 확장 라이브러리를 포함하여, 프로그램 개발 및 실행에 필요한 다양한 기능을 제공한다.
JRE는 자바 프로그램을 실행하기 위한 환경만을 제공하며, 개발 도구는 포함되어 있지 않는다. 즉, 자바 애플리케이션을 단순히 실행하려면 JRE만 설치하면 충분하다. 이는 일반 사용자나 서버 환경에서 자바 프로그램을 구동할 때 필요하다.
2. JDK(Java Development Kit)
JDK는 자바 애플리케이션을 개발하는 데 필요한 도구 모음이다. JDK는 JRE를 포함하고 있으며, 자바 소스 코드를 작성하고 컴파일하며, 애플리케이션을 디버깅하거나 문서를 생성하는 데 필요한 다양한 개발 도구를 제공한다.
- 주요 구성 요소
- JRE : 자바 애플리케이션을 실행하는 환경을 포함한다.
- 컴파일러(javac) : 자바 소스 코드를 바이트코드로 컴파일하여 실행 가능한 형태로 변환하는 도구로, 자바 애플리케이션의 개발 및 배포에 필수적이다.
- Javadoc, JAR 도구 : Javadoc은 자바 소스 코드에서 문서를 자동으로 생성하는 도구이며, JAR 도구는 여러 클래스 파일을 하나의 압축된 .jar 파일로 패키징하여 배포에 용이하게 한다.
- 디버거: 애플리케이션의 오류를 탐색하고 수정하는 데 사용되며, 개발 과정에서 중요한 역할을 한다.
JDK는 자바 프로그램을 개발하는 데 필수적인 도구이며, 개발자가 소스 코드를 작성하고 컴파일하여 애플리케이션을 빌드할 수 있도록 지원한다.
3. JRE와 JDK의 주요 차이점
JRE와 JDK의 가장 큰 차이점은 그 목적에 있다. JRE는 자바 애플리케이션을 실행하는 데 필요한 환경을 제공하는 반면, JDK는 자바 애플리케이션을 개발하고 컴파일할 수 있는 도구를 포함한다.
- JRE는 실행 환경만 제공하며, 개발을 위한 도구는 포함하지 않는다. 따라서 자바 프로그램을 작성하고 컴파일할 필요가 없는 경우, 예를 들어 자바로 작성된 프로그램을 단순히 실행하고자 할 때 JRE만 설치하면 된다.
- JDK는 JRE를 포함하고 있으며, 자바 프로그램을 개발할 수 있는 추가 도구를 제공한다. 개발자는 JDK를 사용하여 자바 소스 코드를 작성하고, 컴파일하고, 디버깅하여 애플리케이션을 개발할 수 있다.
[JRE, JDK 내부 구성]
JRE는 프로그램의 실행에, JDK는 프로그램의 개발에 필요한 도구들을 제공하는 것이다. 애플리케이션 개발을 목적으로 하는 사람들은 반드시 JDK를 설치해야 하며, 일반 사용자나 서버 환경에서는 JRE만으로도 충분할 수 있다.
[출처 https://www.geeksforgeeks.org/difference-between-jdk-and-jre-in-java/]
'Programming Language > Java' 카테고리의 다른 글
[Java/개념] 타입 변환 (Type Conversion) (0) | 2024.10.07 |
---|---|
[Java/개념] 자바 연산자 (Operators) (0) | 2024.10.07 |
[Java/개념] 자료형과 변수 (1) | 2024.10.07 |
[Java/개념] JVM(Java Virtual Machine) 동작 과정 (1) | 2024.10.07 |
[Java/개념] 자바 가상 머신(Java Virtual Machine) (2) | 2024.10.04 |