rt.jar
rt = runtime
Java9 이전까지 java.lang, java.util, java.io 등 핵심 클래스를 담은 Java SE 제공 필수 라이브러리
JRE에 포함되어 있었다.
Java9부터 새로운 구조 도입으로 사라지고 별도의 모듈로 분리됨
즉, rt.jar는 사라지고 jdk안의 lib/modules 안에 분리되어서 포함됨
modules

Java 런타임만 이해할 수 있는 특수한 바이너리 구조 (JRT 포맷)
내부에 .class 파일이 포함됨
JAR/ZIP보다 더 빠르고 공간 효율적으로 클래스를 저장하고 로드할 수 있음
오염을 방지하기 위해 임의 변경, 수정이 불가능함
ee.jar
과거 EE API(Servlet, JSP, EJB, JPA 등)가 묶여있는 JAR 파일
Jakarta EE 로 전환되면서, 각 API가 별도의 JAR 파일로 분리됨
JavaSE 에서 제공하지 않는 엔터프라이즈 기능을 라이브러리로 분리해, 서버 환경에서만 동작하도록 설게됨

Jakarta EE의 Servlet API (분리된 ee.jar의 역할 중 일부)

Jakarta Servlet에서 정의한 표준(이미지에서는 HttpServlet)을 여러 벤더에서 구현한 모습
즉, Tomcat이 Jakarta가 제공한 Servlet 인터페이스를 구현 및 배포했고, 사용자가 이를 다운받아서 활용하는 구조이다.
'Server > Java' 카테고리의 다른 글
| PCW(Post Compile Weaving) 적용법 및 테스트 (0) | 2025.08.15 |
|---|---|
| 2초의 인증 시간이 걸리는 로직의 동시 처리 성능 개선(1) - 프로파일링 툴 선정 (0) | 2025.06.18 |
| JAR (Java ARchive) - 개념, 구성 요소, 생성, 라이브러리 활용 (1) | 2025.04.25 |