JDK, JRE, JDK 비교
JDK
- Java Development Kit의 약자다.
- java 관련 각종 라이브러리가 들어있다.
- 개발자만을 위한 컴파일러(javac), 디버깅툴 등을 제공한다.
- 개발자 및 사용자를 위한 JAVA인 JRE(+JVM)을 포함한 종합 툴이다.
- java 는 컴파일한 후 바로 돌리는 compiled language 방식이 아니라, 자바가상머신으로 자신의 고유 환경을 구축한 후, 돌아가기 때문에 자바 컴파일러와 자바 가상 머신이 모두 필요하고, 이 둘을 묶어서 JDK 라고한다.
- 다시말해, Java로 된 언어를 컴파일하고 개발할 수 있도록 해주는 개발 환경의 세트를 의미한다.
JRE
- Java Runtime Environment 의 약자다.
- JDK 같은 개발 키트 개념은 아니다.
- JDK 로 자바 프로그램을 제작하려고 할때, 프로그램을 실행할 수 있도록 하는 환경을 말한다.
- JRE 는 JVM 이 자바 프로그램을 동작시킬 때 필요한 라이브러리 파일들과 기타파일들이 담겨있다.
- 다시말해, JRE 는 JDK 의 실행환경을 구현했다고 할 수 있다.
- JRE 는 보통 JDK 에 포함되어 있기 때문에 별도로 다운 받을 일은 거의 없다.
SDK
- Software Development Kit 혹은 Standard Development Kit 의 약자다.
- Java 뿐 아니라 모든 언어의 소프트웨어 개발 키트를 지칭한다. -> 언어에 종속된 표현이 아니다.
- JRE에서 돌아가게 될 프로그램을 만들기 위해 개발자들이 사용할 API들이 들어가 있습니다.
- 관용적으로 SDK 를 JavaEE 의미로 사용한다. -> JDK 는 JavaSE 의미로 사용된다.
- Java 용 SDK 를 JDK 라고 한다.
JavaSE, JavaME, JavaEE
JavaSE
- Java Standard Edition 의 약자다.
- 자바의 기본 프로그래밍 플랫폼 입니다.
- 기본이 되는 라이브러리와 API 들이 포함되어 있습니다.
JavaME
- Micro Edition 입니다. 모바일 기기나 임베디드 시스템등에 사용될 어플리케이션을 개발하기 위한 플랫폼을 제공합니다.
JavaEE
- Enterprise Edition 입니다.
- Royal fee 를 지불해야 한다.
- 자바SE + 웹서버용기능 이라고 보면 됩니다.
- 기업이나 큰 비지니스용 어플리케이션을 개발하기 위한 플랫폼을 제공합니다.
- 주로 서버측 개발에 사용합니다.
- JavaSE에 추가하여 DB억세스(JDBC), 리모트(RMI), 메시징(JSM), 웹서비스, XML, 엔터프라이즈자바빈, 서블릿.. 등등을 포함합니다.
JAVA, JDK 버전 정리
- JAVA SE version 을 가장 우선으로 파악해야 한다.
- JDK version은 이 JAVA SE version을 지원하는 버전이라고 볼 수 있다.
- 예를 들어 현재 JDK 12.0.1은 JAVA SE 12.0.1 version에 맞춘 개발 툴이라고 보면 된다.
- 참고로 JAVA SE 6, 7, 8 버전은 JDK 1.6, 1.7, 1.8 로 매칭된다.
- JAVA SE 9 버전 이후로 JDK 와 버전을 맞췄다.
- 결론은 8 버전 이전꺼는 JDK 버전을 1.x 로 생각하고 9 버전 부터는 JAVA 버전과 JDK 버전이 동일하다고 생각하면 된다.
REFERENCES
'Other' 카테고리의 다른 글
gradle 파일 이해하기 (0) | 2022.06.11 |
---|---|
SpringBoot Properties (0) | 2022.03.24 |
intellij 단축키 (0) | 2022.03.14 |
java (Spring)로 Shell Script 실행 하기 (0) | 2022.02.28 |
Lombok 사용시 주의할 점 (0) | 2022.02.28 |