자바 JVM, JDK, JRE의 차이

자바 개발 시 JVM, JDK, JRE라는 용어를 접하게 됩니다. 처음엔 다 비슷한 맥락으로 쓰이는 것 같아 헷갈리기 쉽습니다. 각 개념의 차이를 알아보겠습니다. 결론적으로는 JDK > JRE > JVM 순으로 각각을 포함하고 있습니다.

자바 애플리케이션 개발

1. JDK (Java Development Kit)

JDK는 자바 언어를 사용해서 애플리케이션을 개발하기 위한 소프트웨어 개발 키트입니다. 세 가지 중 가장 상위 개념입니다. JDK에는 JRE와 JVM이 포함되어 있습니다. 자바 소스를 컴파일하는데 필요한 컴파일러(javac), 아카이버(jar), 문서 생성기(Javadoc) 등 여러 도구를 포함하고 있습니다.

 

jdk, jvm, jre 차이
출처=javatpoint.com

 

2. JRE (Java Runtime Environment)

JRE는 자바 실행(런타임) 환경입니다. 구체적으로는 자바로 개발하는 데 사용되는 소프트웨어 도구 집합을 말합니다. 런타임 환경을 제공하기 위해 사용됩니다. JRE는 JVM과 자바 클래스 라이브러리, 그외 파일을 포함합니다.

 

3. JVM (Java Virtual Machine)

JVM은 자바 코드를 실행하는 가상 머신입니다. 자바 언어를 기계어로 변환해주는 역할을 하며, JVM 덕분에 여러 플랫폼(리눅스, 윈도우, 안드로이드..)에서 자바 코드로 개발한 애플리케이션이 실행 가능합니다. 플랫폼에 종속되지 않는다는 특징은 JVM이 있기 때문에 나올 수 있습니다. 

 

예시)

"Hello, World!"를 출력하는 자바 프로그램을 개발한다고 가정해 보겠습니다.

 

처음에 해야 할 것은 사용할 수 있는 JDK를 다운받는 것입니다. JDK는 1.6, 1.7, 1.8 처럼 버전이 있습니다. 이후 HelloWorld.java처럼 java 확장자 파일의 소스를 작성합니다. 이제 JDK에 있는 javac 컴파일러를 사용해서 바이트 코드인 java 파일을 HelloWorld.class로 컴파일합니다.

 

애플리케이션을 실행할 때는 JRE가 역할을 합니다. JRE는 JVM을 사용해서 "Hello, World!"를 출력합니다. 사용자는 JRE만 있어도 애플리케이션을 실행할 수 있습니다.

 

JDK 버전 확인 방법

cmd 또는 터미널을 열고 아래와 같이 입력합니다.

java --version
openjdk 17.0.1 2021-10-19
OpenJDK Runtime Environment (build 17.0.1+12-39)
OpenJDK 64-Bit Server VM (build 17.0.1+12-39, mixed mode, sharing

순서대로 JDK 버전, JRE 빌드 버전, JVM 빌드 버전을 확인할 수 있습니다.

반응형

댓글

Designed by JB FACTORY