본문 바로가기
Programming language/Java

[Java] JVM, JRE, JDK

by hyeinisfree 2022. 5. 12.

JVM

Java Virtual Machine (자바 가상 머신)

JVM은 자바 바이트코드를 실행할 수 있는 주체이다. Java로 작성된 프로그램은 운영체제에 맞는 실행 파일로 컴파일되는 것이 아닌 .class 라는 확장자를 가진 파일(자바 바이트코드)로 변환된다. 변환된 자바 바이트코드는 JVM 위에서 작동이 된다. 이때, 미리 설치된 JVM 은 운영체제 별로 동일하게 작동하도록 .class 파일에게 환경을 제공한다.

 

JRE

Java SE Runtime Environment (자바 런타임 환경)  

JRE는 컴파일 된 Java 프로그램(자바 바이트코드, class 파일)을 실행하는데 필요한 패키지이다. JRE는 JVM을 포함하고 있다. JVM은 우리가 작성한 코드를 기반으로 한 .class 확장자를 가진 클래스 파일이 작동할 수 있도록 환경을 제공해준다. 하지만 원활하게 작동하기 위해서는 코드에 작성된 내용뿐만 아니라 몇 가지 필수적인 요소들이 필요하다. 이를 제공해주는 것이 JRE이다JRE는 크게 JVM과 Java Class Libraries 그리고 Class Loader로 구성된다. Java Class Libraries 는 Java 를 실행시키는데 필수적인 라이브러리로, java.io , java.util , java.thread 등 작동에 필수적인 요소들을 가지고 있다.

JDK

Java SE Development Kit (자바 개발 키트)

Java 를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK(Software Development Kit)이다. JDK는 JRE를 포함하고 있다. JRE는 개발에 사용되는 것이 아닌 실제 프로그램을 구동시키는 데 집중을 하고 있다. 따라서 Java 코드가 주어져도 이를 분석하거나 클래스 파일로 변환하는 일은 할 수 없다. Java Compiler를 비롯한 개발에 필요한 요소들은 없기 때문에 개발을 하기 위해서는 다른 요소들이 더 필요합니다. 이를 제공해주는 것이 JDK이다. JRE에 있는 모든 것 뿐만 아니라 컴파일러(javac)와 jdb, javadoc 과 같은 도구도 있다.  

 

즉, JDK는 Java를 활용하여 프로그램을 개발할 때 필요한 도구 모음으로, 프로그램을 생성, 실행, 컴파일할 수 있다.

💡 SDK란?
Software Development Kit (소프트웨어 개발 키트)
하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴이다. 키트의 요소는 제작사마다 다르다.  
SDK의 대표적인 예로, JDK 등이 있다.
SDK를 활용하여 애플리케이션을 개발할 수 있다.

 

요약

JDK는 자바 프로그램을 실행, 컴파일, 개발하기 위한 도구 모음이다. JRE, JVM를 모두 포함한다.
JRE는 자바 프로그램을 실행할 수 있게 하는 도구이다. JVM을 포함하고 있다.  

 

📗 참고

'Programming language > Java' 카테고리의 다른 글

[Java] SOLID란?  (0) 2022.05.16
[Java] 객체지향이란?  (0) 2022.05.16
[Java] GC란?  (0) 2022.05.12
[Java] JIT 컴파일러란?  (1) 2022.05.09
[Java] JVM이란?  (0) 2022.05.05

댓글