Computer >> 컴퓨터 >  >> 프로그래밍 >> Java

Java 9의 JDK와 JRE 디렉토리 구조 완벽 가이드

Java 9에서 JDKJRE의 디렉토리 구조는 매우 유사합니다. 다만 JDK에는 jmodsinclude라는 두 개의 추가 디렉토리가 존재하고, 이전 버전과 달리 JDK 9에는 더 이상 별도의 JRE 하위 디렉토리가 포함되지 않는 점이 큰 차이입니다.

JDK 디렉토리는 JDK 소프트웨어 설치 시 최상위(root) 디렉토리 역할을 합니다. 이 디렉토리에는 copyright, readme, 그리고 Java 플랫폼의 소스 코드 아카이브 파일인 src.zip도 함께 포함되어 있습니다.

JDK 디렉토리 구조

JDK-9
    - bin
    - conf
    - include
    - jmods
    - legal
    - lib

주요 디렉토리별 역할

  • JDK/bin: 실행 파일과 명령줄 런처(command-line launcher)가 포함되어 있으며, 이미지에 링크된 모듈들에 의해 정의됩니다.
  • JDK/conf: 개발자, 배포 담당자, 최종 사용자가 직접 수정할 수 있는 .properties, .policy 등各종 설정 파일이 위치합니다.
  • JDK/lib: 런타임 시스템의 내부 구현 세부 사항을 담고 있습니다. 이 파일들은 외부 사용을 목적으로 하지 않으며 임의로 수정해서는 안 됩니다.
  • JDK/jmods: 컴파일된 모듈 정의 파일(.jmod)이 저장되어 있습니다. Java 9의 모듈 시스템(Project Jigsaw) 도입으로 새롭게 추가된 디렉토리입니다.
  • JDK/legal: 각 모듈별 저작권(copyright)라이선스(license) 문서가 포함되어 있습니다.
  • JDK/include: JNI(Java Native Interface)JVM(Java Virtual Machine) 디버거 인터페이스를 활용한 네이티브 코드 프로그래밍을 지원하는 C 언어 헤더 파일들이 들어 있습니다.


JRE 디렉토리는 JRE 소프트웨어 설치의 최상위(root) 디렉토리로, readme 파일과 여러 JRE 관련 폴더들을 포함합니다.

JRE 디렉토리 구조

JRE-9
   - bin
   - conf
   - legal
   - lib

주요 디렉토리별 역할

  • JRE/bin: 이미지에 링크된 모듈들에 의해 정의되는 실행 파일과 명령줄 런처가 포함되어 있습니다.
  • JRE/conf: 개발자, 배포 담당자, 최종 사용자가 편집할 수 있는 .properties, .policy 등各종 설정 파일이 위치합니다.
  • JRE/lib: 런타임 시스템의 내부 구현 세부 사항을 담고 있으며, 외부 사용이나 임의 수정은 금지되어 있습니다.
  • JRE/legal: 각 모듈별 저작권 및 라이선스 문서가 포함되어 있습니다.


JDK와 JRE 구조의 핵심 차이점

정리하면 JDK는 JRE의 모든 디렉토리를 포함하면서 개발에 필요한 jmods(컴파일된 모듈 정의)와 include(JNI용 헤더 파일) 디렉토리가 추가된 형태입니다. 또한 Java 8까지 존재했던 JDK 내부의 JRE 하위 폴더가 Java 9부터 제거되었는데, 이는 모듈화된 플랫폼 구조 전환에 따른 변화입니다. 따라서 Java 9 이후에는 JDK 하나만 설치해도 개발과 실행 환경을 모두 구축할 수 있습니다.