프로그래밍 언어/[JAVA]

[JAVA] JRE 와 JDK의 차이? Java 8, 11, 17 에 대하여

연구소장 J 2022. 7. 27. 22:06

JRE, JDK란?

 

처음 Java를 설치하려고 보니 JRE, JDK 등이 존재하는 것을 확인할 수 있다. 둘의 차이는 무엇일까?

 

 

참고)

 

 

[JAVA] 자바(JAVA)란? 자바의 특징

자바(JAVA)란? 자바는 C언어에 객체 지향적 기능을 추가하여 만든 C++과 달리, 처음부터 객체 지향 언어로 개발된 프로그래밍 언어이다. 자바는 자바 가상 머신(JVM, Java Virtual Machine)을 사용하여 운

code-lab1.tistory.com

 

 

 

[JAVA] JVM(Java Virtual Machine)이란?

JVM(Java Virtual Machine)이란? JVM은 Java Virtual Machine, 즉 자바 가상 머신의 약자를 따서 줄여 부르는 용어이다. JVM은 OS와 Java 애플리케이션 사이의 중개자 역할을 한다. JVM은 자바 바이트코드를 실행..

code-lab1.tistory.com

 

 

JRE란?

 

JRE란
출처 : https://www.geeksforgeeks.org/difference-between-jdk-and-jre-in-java/

 

 

JRE(Java Runtime Environment)는 말 그대로 자바 실행 환경이다. JRE는 JVM 뿐만 아니라 Java binaries, Java 클래스 라이브러리 등을 포함하고 있어 자바 프로그램의 실행을 지원한다. 하지만 JRE는 컴파일러나 디버거(Debugger) 등의 도구는 포함하지 않는다. 따라서 자바 프로그램을 개발하는 것이 아니라 실행하기만 원한다면 JRE를 설치하면 된다. 

 

 

 

JDK란?

JDK란
출처 : https://www.geeksforgeeks.org/difference-between-jdk-and-jre-in-java/

 

 

JDK(Java Development Kit)는 말 그대로 자바 개발 키트이다. JDK는 자바 애플리케이션을 개발하기 위한 환경을 지원한다. JDK는 JRE를 포함할 뿐만 아니라 컴파일러(javac), javadoc, jar 등 개발에 유용한 도구들을 포함하고 있다. 따라서 자바 프로그램을 개발하기 위해서는 JDK를 다운로드하여야 한다.

 

 

결론은 JRE는 자바 실행환경이고, JDK는 자바 개발 도구라는 것이다. 따라서 개발자들은 JDK를 다운로드 받으면된다.

 

 

 

Java 8, 11, 17

Java에는 다양한 버전이 존재한다. 그중 가장 많이 쓰이는 버전은 Java 8, 11, 17이다. 이 세 가지 버전이 많이 사용되는 이유는 이 버전들이 LTS(Long Term Support) 버전이기 때문이다. 

 

LTS란 말 그대로 장기간에 걸쳐 지원을 해주겠다는 뜻이다. LTS 지원 버전은 출시 이후 8년간 보안 업데이트와 버그 수정을 지원해준다. 그 외에 6개월 간격으로 non-LTS 버전들이 출시되는데, 이러한 버전들은 짧은 기간만 해당 버전을 지원해준다. 

 

따라서, LTS 버전인 Java 8, 11, 17이 가장 많이 사용되고 있다.

 

 

간단하게 각 버전들의 특징을 정리하자면 다음과 같다.

 

 

Java 8

Java 8이란

 

  • 오라클이 자바 인수 후 출시한 첫 번째 LTS 버전
  • 32bit를 지원하는 마지막 공식 Java 버전
  • Oracle JDK(Oracle사에서 지원하는 버전으로 유료) , Open JDK(오픈소스 기반의 무료)로 나뉨
  • 새로운 날짜와 시간 API(LocalDateTime 등)
  • 람다식(Lambda), Stream API
  • PermGen 영역 삭제
  • Static Link JNI Library

 

 

Java 11

Java 11이란

 

  • Oracle JDK와 Open JDK 통합
  • Oracle JDK가 구독형 유료 모델로 전환
  • 람다 지역 변수 사용법 변경
  • Third Party JDK로의 이전 필요
  • HTTP 클라이언트 표준화 기능

 

Java 17

Java 17의 특징

 

  • 가장 최신 LTS 버전
  • 봉인 클래스(Sealed Class) 정식 추가
  • 패턴 매칭 프리뷰 단계
  • Incubator (Foreign Function & Memory API)
  • 애플 M1 및 이후 프로세서 탑재 제품군에 대한 정식 지원 (Mac 유저들 환호)
  • 난수 생성 API 추가

 

더 자세한 설명은 Oracle 홈페이지를 참조하자.

 

https://www.oracle.com/java/java-se-subscription/

 

반응형