Server/Java

rt.jar, ee.jar

suee97 2025. 4. 27. 16:48

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 인터페이스를 구현 및 배포했고, 사용자가 이를 다운받아서 활용하는 구조이다.