JVM, JRE, JDK는 자바 프로그래밍에 사용 되는 3대 핵심 기술 패키지다.
Java Runtime Environment, 자바 런타임 환경
자바 코드를 실행하기 위한 도구들로 구성된 패키지
자바 프로그램을 구동하기 위한 독립형 구성요소로 사용될 수도 있고, JDK의 일부이기도 하다.
자바 프로그램을 실행하는 것이 자바 프로그램을 개발하는 것이 되므로, JDK는 JRE를 필요로 한다.
JRE는 JVM과 더불어 자바 프로그램 실행에 필요한 여러 라이브러리들을 가지고 있다.
SDK
키트💡 Software Development Kit (소프트웨어 개발 키트)
⇒ 하드웨어 플랫폼, 운영체제 또는 프로그래밍 언어 제작사가 제공하는 툴. 키트의 요소는 제작사마다 다르다.
⇒ 대표적인 예 > 안드로이드 스튜디오
Java EE(Enterprise Edition)
Java SE(Standard Edition)
Java ME(Mobile Edition)
일반적으로, 개별 JDK 버전은 자바 SE를 포함하고 있다
💡 Spring이나 Spring Boot를 쓴다고 할 때, JDK는 Java EE를 기반으로 해?
GPT said..
JDK ⇒ Java 애플리케이션을 개발하고 실행하는 데 필요한 기본 도구와 라이브러리를 제공. 컴파일러(javac), JRE(Java 런타임 환경), 표준 라이브러리, 디버거 및 개발 도구 등 포함
Spring
과Spring Boot
는 Java EE의 대안으로, 더 가볍고 모듈화된 방법으로 Java 애플리케이션을 개발할 수 있게 해줌. 기본적으로 Java SE를 기반으로 함. Spring 애플리케이션은 Java EE 애플리케이션 서버를 사용하지 않고도 독립적으로 실행될 수 있다.
- Java SE JDK: 표준 JDK로 대부분의 Java 애플리케이션 개발에 사용.
- Java EE: Java SE를 기반으로 추가적인 엔터프라이즈 기능을 제공하는 플랫폼. "Java EE JDK"라는 용어는 없고, Java SE JDK에 추가적인 애플리케이션 서버와 라이브러리를 사용. 현재 Java EE는 Jakarta EE로 이름이 변경
- Java ME: 모바일 및 임베디드 애플리케이션 개발을 위한 도구. "Java ME JDK"라는 용어는 사용되지 않으며, 별도의 SDK로 제공. Java ME SDK (Software Development Kit)를 설치하여 Java ME 애플리케이션을 개발할 수 있음.
JDK는 기본적으로 Java SE JDK를 의미하며, 필요에 따라 Java EE 관련 도구와 라이브러리를 추가하거나, Java ME SDK를 별도로 사용하여 특정 애플리케이션을 개발할 수 있습니다.
JDK는 JVM, JRE를 모두 포함하고, 자바 개발에 필요한 development tools 도 포함하고 있다.
JDK 디렉토리에 들어가보면 다음과 같다.
bin
자바 개발 및 실행에 필요한 도구와 유틸리티 명령
bin
폴더 안에 들어가보면 다음과 같은 개발 프로그램들이 있다. 대부분 .exe
파일이다.
javac : 자바 컴파일러. Java source code → Java byte code
java : 자바 인터프리터. byte code를 해석하고 실행
jar : 자바 클래스 파일을 압축한 자바 아카이브 파일(.jar) 생성, 관리하는 압축 프로그램
include
lib