Language/Java

Java - JDK와 JRE 차이 정리!

JaeHoney 2022. 4. 26. 08:32

JDK와 JRE의 차이

아래는 Oracle에서 JDK와 JRE의 범위에 대해 표현한 그림이다.

JRE

JRE(Java Runtime Environment)는 자바 가상 머신( Java Virtual Machine ), 자바 클래스 라이브러리(Java class library), 자바 명령(Java command) 및 기타 인프라를 포함한 컴파일된 Java 프로그램을 실행하는데 필요한 패키지이다.

JRE는 환경(Environment)이다. 기본적으로 Java 관련 파일이 있는 디렉터리이다.

포함되어 있는 폴더와 파일에 대해 설명을 간단하게 하면 아래와 같다.

  • bin: Java 실행 프로그램이 포함되어 있다. JVM을 시작하는 java(Window의 경우 javaw)가 포함되어 있다. 또한, keytool 및 policytool과 같은 다른 유틸리티도 있다.
  • conf : 사용자가 편집할 수 있는 구성 파일( configuration files )이 있다.
  • lib: lib에는 여러 가지 supporting 파일이 있다. 예를 들어 일부 .jar 구성 파일, 속성 파일, 글꼴, 번역, 인증서 등 Java의 모든 trimming들이 있다. 가장 중요한 것은 모듈인데, Java 표준 라이브러리의 .class 파일을 포함하는 모듈이 있다.

Java 표준 라이브러리는 네이티브 코드를 호출해야 한다. JRE에는 시스템 별 네이티브 바이너리 코드를 지원하는 .dill(Window), dylib(macOS), .so(Linux) 파일이 bin/ 또는 lib/ 아래에 포함되어 있다.

JDK

JDK(Java Development Kit)는 Java를 사용하기 위해 필요한 모든 기능을 갖춘 Java용 SDK(Software Development Kit)이다.

JRE에 포함된 것뿐 아니라 컴파일러(javac)와 jdb, javadoc과 같은 도구도 있다. JDK는 JRE랑 다르게 Java 프로그램을 실행하는 것에 그치지 않고 Java 프로그램을 생성하고 컴파일할 수 있다.

JDK 또한 디렉터리의 세트이다. 아래와 같은 몇 가지 추가 사항이 있는 JRE의 상위 집합이다.

  • bin/ 은 개발 도구로 확대되었다. 그중 가장 중요한 것은 .jar, javadoc, jshell을 포함한 javac이다.
  • 표준 라이브러리용 JMOD파일을 보유하는 jmods/가 추가되었다. 이러한 파일은 표준 라이브러리를 jlink와 함께 사용하는 것을 허용한다.

결론

정리하면, JDK는 JRE를 포함한다. JDK를 설치하면 JRE는 이미 JDK에 포함되어 있으므로 별도로 JRE를 다운로드 할 필요는 없다.

JDK는 JRE 및 기타 개발 도구로 구성된다. 기타 개발 도구는 컴파일러(javac), 아카이버(jar), 문서 생성기(javadoc) 등이 포함된다.

Java 프로그램을 실행하는데만 포커스를 둔다면, JRE만 설치하면 된다. 반면, Java로 프로그래밍을 하거나 배포를 진행해야 한다면 JDK를 설치해야 한다.


Reference