본문 바로가기

Backend Study/Java

[JAVA] JVM, JRE, JDK 차이

1. JVM

JVM은 자바 가상머신 (Java Virtual Machine)의 약자이다.

JVM은 자바 소스코드로부터 만들어지는 자바 바이너리 파일(.class)을 실행할 수 있고, 컴파일된 바이너리 코드는 어떤 JVM에서도 동작시킬 수 있다. 하지만, 플랫폼에 의존적이라 리눅스 JVM과 윈도우즈 JVM은 다르다. 

 

2. JRE

JRE는 자바 실행환경 (Java Runtime Environment)의 약자이다.

JRE는 JVM이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타 파일들을 가지고있다. 

 

3. JDK

JDK는 자바 개발도구 (Java Development Kit)의 약자이다. 

JDK는 JRE + 개발을 위해 필요한 도구(javac, java)등 들을 포함한다.

 

자바 소스 코드를 작성하고 컴파일하고, 실행할 목적이라면 JDK를 설치하고

자바로 만들어진 프로그램을 실행한다면 JRE만 설치해도 충분하다. 

 

+ Oracle JDK, Open JDK?

jdk는 크게 Oracle JDKOpen JDk가 있다. 실질적인 기술 차이는 없으나, JVM 성능 면에서는 Oracle JDK가 훨씬 좋다.  (Oracle JDK는 유료이기때문에 안정성에 중점을 두고있다. 

 

참고) https://wikidocs.net/257

https://www.geeksforgeeks.org/differences-jdk-jre-jvm/