JDK, JRE 차이점

춘식이 개발로그·2022년 3월 25일
0

JRE(Java Runtime Environment = 자바 런타임 환경)란 자바 가상머신(Java Virtual Machine), 자바 클래스 라이브러리(Java class library), 자바 명령(Java command)및 기타 인프라를 포함한 컴파일된 Java 프로그램을 실행하는데 필요한 패키지이다.

또한 '런타임 환경'이란, 어떠한 소프트 웨어를 실행하기 위한 또다른 소프트웨어이다.

클래스 로더 (Class Loader)

클래스 로더는 JVM에 속하지 않고 JRE에 속한 것으로 클래스를 로드해서 코어 자바클래스 라이브러리에 연결하는 역할을 한다.

JVM (자바 가상머신)

JVM은 자바로 만들어진 애플리케이션이 디바이스 또는 클라우드 환경 등에서 실행되는 데 필요한 리소스를 확보하도록 보장하는 역할을 한다.

JRE

JRE는 여러 요소로 이루어진 컨테이너이며, 각 구성 요소의 활동을 조율하는 역할을 한다.
Java 코드를 받아서 필요한 라이브러리들을 결합시킨 후, 이 코드를 실행할 JVM을 시작한다.

JRE는 운영체제 위에서 실행되면서 자바를 위한 부가적인 서비스를 제공한다.

운영체제마다 존재하는 여러 요구 사항들을 JRE가 처리해주며, 자바 프로그램이 거의 모든 운영체제에서 코드 수정 없이 실행될 수 있도록 한다는 것.(JRE를 만드는 제조사들은 각 운영체제 별로 JRE를 만들어야 한다)

또한 운영체제를 기반으로 하는 부가적인 서비스를 제공하기도 하는데,
예를 들면 자동 메모리 관리(Automatic Memory Management)는 프로그래머가 메모리 할당과 재할당을 수동으로 조작할 필요가 없게 해주는 JRE의 가장 중요한 서비스 중 하나이다.

우리가 평소에 사용하는 수많은 프로그램들은 대부분 자바로 만들어졌다.
그런데 평소 이와 같은 JRE를 따로 설치 하지 않아도 되는 이유는 프로그램에 JRE를 포함하여 배포하기 때문인데,

즉 프로그램만 다운로드 받았다고 생각하지만 JRE도 같이 다운로드가 된 것이다.

그래서 JRE는 자바 프로그램 실행을 목적으로 컴퓨터에 설치되는 소프트웨어일 뿐이다.
JDK, JVM은 주로 자바 프로그램을 개발하고 실행하는 데 사용되기 때문에 자바 개발자와 관계가 깊지만, JRE는 자바 애플리케이션을 실행할 수 있게 해준다는 측변에서 자바 애플리케이션 사용자와 좀더 관계가 깊다고 볼 수 있다.

JDK

JDK(Java Development Kit)는 Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK(Software Development Kit)이다. JRE에 있는 모든 것 뿐만 아니라 컴파일러(javac)와 jdb, javadoc과 같은 도구도 있다. 즉 JDK는 프로그램을 생성하고 컴파일 할 수 있다.

요약.

  1. JVM < JRE < JDK, 사용만 한다면 JRE만 있어도 되고 프로그래밍을 위해선 JDK가필요하고 JSP를 사용하기 위해서도 필요하다.
  2. JRE는 자바를 사용하기 위한 환경이고, 내가 따로 설치하지 않아도 내가 사용할 자바로 만들어진 프로그램을 설치한다면 자동으로 설치가 된다.
  3. JRE는 프로그래머가 메모리 할당과 재할당을 수동으로 조작할 필요가 없다.

참고 글

https://siahn95.tistory.com/entry/Java-JRE%EB%9E%80
https://developerntraveler.tistory.com/49
https://choicode.tistory.com/17

0개의 댓글