JRE에 대해 본격적으로 이야기하기 전에,
이전에 작성한 JVM에 대한 글을 먼저 보고 오는 것을 추천한다.
JRE란?
JRE란 Java Runtime Environment,
즉, 자바 런타임 환경이라는 뜻을 갖고 있다.
여기서 '런타임 환경'이란,
어떠한 소프트웨어를 실행하기 위한 또다른 소프트웨어다.
어떠한 소프트웨어,
그러니까 프로그램을 실행하기 위해
해당 프로그램을 구성하고 있는 클래스 파일을 로드하고,
메모리나 시스템 리소스 등에 대한 액세스를 확보한다.
Java를 실행하기 위한 자바 런타임 환경(JRE)은
크게 아래 세 가지로 구성되어 있다.
자바 클래스 라이브러리(Java class libraries),
자바 클래스 로더(Java class loader),
자바 가상 머신(Java Virtual Machine).
클래스 로더 (Class Loader)
이전에 작성한 JVM의 글에서도 볼 수 있었던 클래스 로더는
사실 엄밀히 따지자면 JVM에 속하지는 않는다.
JVM과 밀접한 관련이 있어서 JVM을 소개할 때 필수적으로 언급되지만
JRE에 속한 것으로, 이름 그대로
클래스를 로드해서 코어 자바 클래스 라이브러리(Core Java class libraries)에 연결하는 역할을 한다.
JVM
JVM은 자바로 만들어진 애플리케이션이 디바이스 또는 클라우드 환경 등에서
실행되는 데 필요한 리소스를 확보하도록 보장하는 역할을 한다.
JRE
JRE는 여러 요소로 이루어진 컨테이너이며,
각 구성 요소의 활동을 조율하는 역할을 한다.
Java 코드를 받아서 필요한 라이브러리들을 결합시킨 후,
이 코드를 실행할 JVM을 시작한다.
JRE (자바 런타임 환경)
JRE는 운영체제 위에서 실행되면서
자바를 위한 부가적인 서비스를 제공한다.
그 말인 즉슨,
운영체제마다 존재하는 여러 요구 사항들을 JRE가 처리해주며,
자바 프로그램이 거의 모든 운영체제에서 코드 수정 없이 실행될 수 있도록 한다는 것이다.
(물론, JRE를 만드는 제조사들은 각 운영체제 별로 JRE를 만들어야 한다)
또한 운영체제를 기반으로 하는 부가적인 서비스를 제공하기도 하는데,
예를 들면,
자동 메모리 관리(Automatic Memory Management)는
프로그래머가 메모리 할당과 재할당을 수동으로 조작할 필요가 없게 해주는
JRE의 가장 중요한 서비스 중 하나이다.
우리가 평소 사용하는 수많은 프로그램들은 대부분 자바로 만들어졌는데,
평소 이와 같은 JRE를 따로 설치하지 않아도 되는 이유는 뭘까?
보통 프로그램에 JRE를 포함하여 배포하기 때문이다.
즉, 당신은 프로그램만 다운로드 받았다고 생각하지만
JRE도 같이 다운로드가 된 것이다.
그래서 JRE는 자바 프로그램 실행을 목적으로 컴퓨터에 설치되는 소프트웨어일 뿐이다.
JDK, JVM은 주로 자바 프로그램을 개발하고 실행하는 데 사용되기 때문에
자바 개발자와 관계가 깊지만,
JRE는 자바 애플리케이션을 실행할 수 있게 해준다는 측면에서
자바 애플리케이션 사용자와 좀 더 관계가 깊다.
다음 글에는 드디어 JDK에 대해 알아본다.
끝!
'Study > Java' 카테고리의 다른 글
[Java] JDK란? (0) | 2021.01.01 |
---|---|
[Java] For vs. ForEach (여러 사용법과 속도 차이) (0) | 2020.12.23 |
[Java] JVM이란? - (3) 구성 요소 (2) | 2020.12.14 |
[Java] JVM이란? - (2) 표준, 구현, 인스턴스 (0) | 2020.12.14 |
[Java] JVM이란? - (1) 개념, 정의, 용도 (0) | 2020.12.10 |