자바 클래스 라이브러리 ( JCL은 )의 집합입니다 동적으로 로드 라이브러리 것을 자바 가상 머신 (JVM) 언어에서 호출할 수 있는 런타임. Java 플랫폼 은 특정 운영 체제에 의존하지 않기 때문에 애플리케이션은 플랫폼 네이티브 라이브러리에 의존할 수 없습니다. 대신 Java 플랫폼은 최신 운영 체제에 공통된 기능을 포함하는 포괄적인 표준 클래스 라이브러리 세트를 제공합니다.
JCL은 JVM 내에서 세 가지 용도로 사용됩니다.
다른 표준 코드 라이브러리와 마찬가지로 , 컨테이너 클래스 및 정규식 처리 와 같은 잘 알려진 유용한 기능 세트를 프로그래머에게 제공합니다.
라이브러리는 일반적으로 네트워크 액세스 및 파일 액세스와 같이 하드웨어 및 운영 체제에 크게 의존하는 작업에 대한 추상 인터페이스를 제공합니다.
일부 기본 플랫폼은 Java 애플리케이션이 기대하는 모든 기능을 지원하지 않을 수 있습니다. 이러한 경우 라이브러리 구현은 이러한 기능을 에뮬레이트 하거나 특정 기능의 존재를 확인하는 일관된 방법을 제공할 수 있습니다.
라이브러리 구현 및 구성
JCL ( Java Class Library )은 하드웨어 및 운영 체제 (예 : I / O 또는 비트 맵 그래픽 )에 직접 액세스 해야 하는 부분을 제외하고 거의 전적으로 Java로 작성됩니다. 이러한 기능에 대한 액세스를 제공하는 클래스는 일반적으로 Java Native Interface 래퍼를 사용하여 운영 체제 API에 액세스 합니다.
거의 모든 JCL은 JRE 및 JDK 배포와 함께 제공되는 "rt.jar"라는 단일 Java 아카이브 파일에 저장됩니다. Java 클래스 라이브러리 (rt.jar)는 기본 부트 스트랩 클래스 경로에 있으며 응용 프로그램에 대해 선언된 클래스 경로에 나타날 필요가 없습니다. 런타임 JCL을 찾을 수 있는 부트 스트랩 클래스 로더를 사용합니다.
자바 모듈 시스템 (의 일부 자바 9 릴리스) 모 놀리 식 "의 rt.jar"JAR 파일을 깨고 지정된 종속성이 여러 모듈에서 JCL 자체를 모듈화.
라이브러리 이전 라이선스
OpenJDK가 출시되기 전에 JDK는 독점 라이선스를 기반으로 했습니다.
2007 년 상반기에 거의 완전 무료 및 오픈 소스 코드를 기반으로 완전히 빌드 가능한 JDK를 출시하겠다는 약속에 따라 Sun 은 2007 년 5 월 8 일 GPL에 따라 클래스 라이브러리의 전체 소스 코드를 발표했습니다. 오픈 소스 라이선스에 따라 코드가 릴리스되는 것을 원하지 않는 타사로부터 Sun이 라이센스 한 제한된 부품. Sun의 목표는 독점적이고 폐쇄된 소스로 남아있는 부분을 대체 구현으로 교체하고 클래스 라이브러리를 완전히 무료 및 오픈 소스로 만드는 것이었습니다.
년 12 월 2010 년까지의 JDK의 나머지 계루 부분에 의해 가능하게 된 일 후 오라클로 진 플러그 JDK를 구축할 필요하지만 그것을 실행하는 데 필요한 되지 않았다. 2007 년 5 월 현재 독점 및 비공개 소스로 남아있는 클래스 라이브러리의 유일한 부분 ( OpenJDK 7, 의 경우 2007 년 5 월 기준 4 % , 2008 년 5 월 기준 1 % 미만 및 OpenJDK 6 ) :
SNMP의 구현입니다.
2007 년 5 월의 첫 번째 릴리스 이후 Sun은 커뮤니티의 도움으로 오픈 소스로 릴리스 되거나 거의 모든 코드를 방해하는 오픈 소스 대안으로 대체되었습니다.