JDK와 JRE의 차이점은 무엇일까?

bbangho·2023년 9월 7일
0

java

목록 보기
2/12

JDK - Java Delvelpmetn kit
JRE - Java Runtime Environmetn
JVM - Java Virtual Machine

JDK, JRE를 알기전에 JVM을 알아보자

JVM

JVM은 컴파일된 바이너리 코드를 실행시켜주는 것이다.

먼저 java와 c와 다른점을 찾아보자. 컴퓨터들은 다 같은 기계어를 쓰는게 아니다. 윈도우에서 돌게 컴파일한 c언어 파일은 맥이나 리눅스에서 돌지 않는다.

하지만 java는 jvm위에서 실행되기 때문에 윈도우, 맥, 리눅스 환경에 구애받지 않고 다 돌릴 수 있다.

Hello.java 파일을 컴파일하면 바이트코드가 생긴다. Hello.class가 만들어진다. <- 이게 바이트코드이다.
이 바이트 코드를 JVM에 가져다주면 기계어로 통역을 해준다는 것이다.

JRE

Java Runtime Environment
실행되는 시점에 그 환경요소에서 필요한 것이다.
예를들어 우리가 자바의 자료구조인 List, Map 기능들을 사용할 수 있는 이유는 이것들이 컴파일된 클래스로 제공되기 때문이다.

이러한 기능들과 JVM을 세트로 묶어서 설치할 수 있게 한것이 JRE이다.

JDK

JRE를 포함하고 개발에 필요한 툴들을 제공한다
예를들면
javac 자바 소스파일을 바이트코드로 변환하는
java - 자바 응용 프로그램 로더. javac 컴파일러가 만든 클래스 파일을 해석 및 실행한다.
jar - 서로 관련있는 클래스 라이브러리들과 리소스들을 하나의 JAR 파일로 묶어주는 툴.

최종사용자가아닌 개발자들을 위한 기능들도 탑재하고 있다.

JDK와 JRE의 차이점

JRE에는 컴파일된 자바파일인 class파일을 실행시킬수 있는 JVM과 library들을 가지고있고
JDK는 컴파일해주고 디버깅 테스트 할 수 있는 툴들과 JRE가 포함되어 있다.

참고 :

https://www.youtube.com/watch?v=VvVruEDCSSY

https://ko.wikipedia.org/wiki/%EC%9E%90%EB%B0%94_%EA%B0%9C%EB%B0%9C_%ED%82%A4%ED%8A%B8

profile
2024. 06.17

0개의 댓글