GNU 클래스패스
"오늘의AI위키"의 AI를 통해 더욱 풍부하고 폭넓은 지식 경험을 누리세요.
1. 개요
GNU 클래스패스는 자바 가상 머신을 위한 표준 클래스 라이브러리의 자유로운 구현이다. GNU 일반 공중 사용 허가서 및 GPL 연결 예외에 따라 라이선스가 부여되며, 자유 소프트웨어 재단 소유이다. 다양한 자유 자바 런타임 환경에서 사용되며, 자바 코드를 네이티브 실행 파일로 컴파일하거나 자바 애플릿 실행, .NET Framework와의 통합 등 다양한 활용 사례가 있다. 1998년 개발이 시작되었으며, Java 1.4 API 대부분을 구현한 후 버그 수정에 집중했다. 개발팀은 공식적인 계층 구조 없이 기술적으로 유능한 사람이 작업을 수행하며, 코드 변경 사항은 토론을 거쳐 적용된다. GNU 클래스패스는 공식 자바 API 네임스페이스의 클래스를 포함하며, VM 클래스를 통해 네이티브 코드 호출을 지원한다. Java 1.5의 새로운 언어 기능 지원과 함께, 비자유 라이선스 코드를 허용하지 않으며, OMG 사양을 기반으로 한 omg.org 도메인의 클래스를 자유롭게 사용할 수 있다.
더 읽어볼만한 페이지
- 자바 라이브러리 - 아파치 루씬
아파치 루씬은 더그 커팅이 개발한 오픈 소스 전문 검색 라이브러리이며, 텍스트 색인 및 검색 기능을 제공하여 웹 검색 엔진, 퍼지 검색, 추천 시스템 구현 등에 사용된다. - 자바 라이브러리 - 구글 구아바
구글 구아바는 구글에서 개발한 오픈 소스 자바 라이브러리로, 자바 컬렉션 프레임워크 확장, 캐싱, I/O, 문자열 처리 등 다양한 유틸리티 기능 제공, 함수형 프로그래밍 스타일 컬렉션 적용을 통해 자바 개발 생산성 향상에 기여한다. - 자바 플랫폼 - 블루레이
블루레이 디스크는 DVD 후속 매체로, 청색 레이저를 사용하여 고화질 영상과 음향을 제공하며 HD DVD와의 경쟁 후 고밀도 광디스크 표준으로 자리 잡았으나 스트리밍 서비스 성장으로 녹화용 디스크 생산이 중단되는 추세이다. - 자바 플랫폼 - 자바 플랫폼, 마이크로 에디션
자바 ME는 임베디드 및 모바일 장치에서 자바 앱을 실행하는 플랫폼으로, 피처폰에서 주로 사용되었으며 다양한 프로파일과 에뮬레이터, 개발 도구를 제공하고 JSR을 통해 기능이 확장된다. - GNU 프로젝트 소프트웨어 - GNU 코어 유틸리티
GNU 코어 유틸리티는 유닉스 계열 운영체제에서 파일, 셸, 텍스트 조작을 위한 기본적인 명령어 모음으로, GNU 파일 유틸리티에서 시작하여 3개의 패키지가 통합되어 발전했으며 셸 스크립트 및 시스템 관리에 필수적인 도구를 제공한다. - GNU 프로젝트 소프트웨어 - GNU 허드
GNU 허드는 유닉스 운영 체제를 대체하는 것을 목표로 개발된 GNU 프로젝트의 커널로, 마이크로커널 기반의 서버-클라이언트 아키텍처를 사용하며, 파일 시스템 기능을 확장하는 트랜슬레이터 개념을 제공한다.
GNU 클래스패스 - [IT 관련 정보]에 관한 문서 | |
---|---|
기본 정보 | |
![]() | |
![]() | |
개발자 | GNU 프로젝트 (구 FSF) |
상태 | 개발 중단 |
최신 릴리스 버전 | 0.99 |
최신 릴리스 날짜 | 2012년 3월 16일 |
운영 체제 | 크로스 플랫폼 |
프로그래밍 언어 | C, Java |
장르 | 라이브러리 |
라이선스 | GPL 링크 예외 |
웹사이트 | GNU Classpath 공식 웹사이트 |
2. 라이선스
GNU 일반 공중 사용 허가서와 연결 예외에 따라 라이선스가 부여된다. 이는 자유 소프트웨어 라이선스이다. 모든 코드는 공식적으로 자유 소프트웨어 재단의 소유이며, 이 소유자는 개발자들에게 자체 계약 의무를 지닌다.
GNU 클래스패스는 완전한 기능을 갖춘 자바 가상 머신에 필요한 표준 클래스 라이브러리의 구현을 제공한다. Kaffe, SableVM, JamVM, Jikes RVM, VMKit 등 다양한 자유 자바 런타임 환경에서 사용된다.[2]
3. 활용
다른 활용 사례는 다음과 같다.
4. 역사
GNU 클래스패스의 개발은 1998년에 5명의 개발자가 시작했다. 그 후, Kaffe, libgcj 등 비슷한 목표를 가진 다른 프로젝트들과 여러 번 병합되었다. 한때 GNU 클래스패스는 자체 가상 머신(Japhar)을 제공했지만, 클래스패스가 여러 다른 프로젝트에서 공유되는 기본 라이브러리가 되면서 점점 더 적은 관심을 받게 되었고, 현재는 더 이상 지원되지 않는다.
대부분의 공식 Java 1.4 API를 구현한 후, 프로젝트 작업은 API 적용보다는 버그 중심이 되었다. 2006년 10월 24일, 마지막으로 누락된 1.4 클래스인 HTMLWriter의 구현이 커밋되었다. 개발 속도(하루 평균 새로운 코드 줄 수로 수학적으로 계산)는 2006년에 역대 최고치를 기록했다.
GNU 클래스패스라는 이름은 원래 브래들리 M. 쿤이 초기 개발자 중 한 명인 폴 피셔에게 제안했다. 당시에는 자유 Java 구현 커뮤니티에서 썬 마이크로시스템즈(Sun Microsystems)의 Java 상표권이 자유 구현에 대해 강제되는 것에 대한 우려가 컸다. 쿤은 대부분의 Java 시스템에서 Java 라이브러리가 컴퓨터 어디에 있는지 나타내는 데 사용되는 환경 변수인 '''$CLASSPATH'''라는 이름을 제안했다. '''$CLASSPATH'''는 종종 `/usr/lib/java`와 같이 ''java''라는 단어를 포함하는 경로 이름으로 확장되었으므로, 실제로 말하지 않고도 ''Java''라는 이름을 연상시키는 방법이었다. 피셔와 다른 개발자들은 보기 흉한 ''$''와 모든 대문자 사용을 싫어했고 ''Classpath''로 결정했다.
5. 개발팀
GNU 클래스패스는 공식적인 계층 구조가 없다. 기술적으로 유능한 사람이 작업을 수행하며, 엄격한 업무 분담도 없다. 모든 코드 변경 사항은 토론 목록에 패치 형태로 게시되며, 필요에 따라 반대 의견을 제기할 수 있다. 프로젝트는 하루에 5~8개의 패치를 받는다.
GNU 클래스패스 라이브러리 코드 커버리지 진행 상황은 OpenJDK6[4] 및 OpenJDK7[5]에 대해 추적할 수 있다. 유지보수자는 프로젝트의 법적인 측면을 관리하고, 정기적인 릴리스를 준비하며, 품질 관리를 수행한다. 유지보수자는 CVS 접근 권한을 부여한다.
6. 가상 머신 통합
GNU 클래스패스는 공식 자바 API 네임스페이스의 클래스를 포함한다. 네이티브 코드 호출이 필요하거나 강력하게 요구되는 경우, 소수의 "VM" 클래스에서 이 작업을 수행한다. 이러한 VM 클래스의 이름은 네이티브 메서드를 필요로 하는 클래스의 이름에 'VM' 접두사를 붙여서 일치시킨다. VMObject, VMString 등이 그 예이다. VM 클래스는 나머지 코드와 별도로 저장되며, 패키지 전용이며 final로 선언된다. 이 클래스의 메서드는 'native' 키워드를 포함하며, 이는 지원하는 네이티브 라이브러리의 필요성을 나타낸다. 이러한 라이브러리는 자바 가상 머신 제작자가 제공하므로, 해당 가상 머신의 소스를 사용할 수 있고 수정할 수 있다면 GNU 클래스패스를 거의 모든 자바 가상 머신에 연결할 수 있다.
7. Java 1.5의 새로운 언어 기능 지원
0.95 버전 이전에는 각 GNU 클래스패스 릴리스는 두 개의 별도 릴리스 tarball로 구성되었다. 하나는 주 개발 브랜치의 상태를 나타내고, 다른 하나는 제네릭, 열거형, 애너테이션과 같이 Java 1.5에 추가된 기능을 지원하는 보다 실험적인 브랜치의 내용을 담고 있었다.[6]
0.95 버전부터[7] 제네릭과 같은 Java 1.5 추가 기능이 메인 브랜치에 완전히 통합되었다. 이 브랜치는 이클립스 컴파일러인 ecj를 사용하여 Java 1.5 소스 코드를 바이트코드로 컴파일하여 빌드할 수 있다. GCJ의 경우, 이 초기 단계를 수행하기 위해 ecj를 사용한 다음, 바이트코드를 네이티브 코드로 변환한다. 0.95 버전부터 GNU 클래스패스는 또한 새로 GPL로 라이선스된 오픈 소스 javac 컴파일러를 사용하여 컴파일하고 실행하는 것을 지원하며, GNU 클래스패스 클래스 라이브러리, 도구 및 예제를 javac 자체로 컴파일할 수 있도록 한다.
8. omg.org 도메인에서 파생된 클래스
GNU 클래스패스는 비자유 라이선스를 가진 코드나, 비자유 라이선스를 가진 코드에서 자동으로 생성된 코드는 일절 허용하지 않는다. 표준 자바 API는 객체 관리 그룹에서 배포한 IDL 파일에서 일반적으로 생성되는 omg.org 도메인의 수많은 클래스를 포함하고 있다. 이러한 파일의 "사용은 가능하지만 수정 불가" 라이선스는 비자유로 간주된다. 이러한 이유로, GNU 클래스패스 프로젝트에 언급된 클래스는 공식적으로 인쇄된 OMG 사양만을 사용하여 처음부터 작성되었다. 따라서 GNU 클래스패스의 이 부분은 프로젝트의 다른 코드와 마찬가지로 자유롭게 사용될 수 있다.[8][9]
참조
[1]
웹사이트
GNU Classpath 0.99 Released!
http://blog.fuseyism[...]
Fuseyism
2012-03-16
[2]
간행물
GCJ applet viewer
http://www.koders.co[...]
Koders
2009-09-14
[3]
간행물
EECG
http://www.eecg.toro[...]
U Toronto
[4]
간행물
J API
http://fuseyism.com/[...]
Fuseyism
2012-05-31
[5]
간행물
J API
http://fuseyism.com/[...]
Fuseyism
2012-05-31
[6]
간행물
The GNU Project
https://www.gnu.org/[...]
The Free Software Foundation
2005-11-02
[7]
간행물
The GNU Project
https://www.gnu.org/[...]
The Free Software Foundation
2009-02-05
[8]
간행물
Fosdem
http://developer.cla[...]
Classpath
[9]
간행물
The GNU is Not Unix Project
http://cvs.savannah.[...]
The Free Software Foundation
[10]
웹인용
보관된 사본
http://git.savannah.[...]
2019-07-22
[11]
URL
http://tromey.com/bl[...]
[12]
웹인용
GNU Classpath 0.99 Released!
http://blog.fuseyism[...]
Fuseyism
2012-03-16
본 사이트는 AI가 위키백과와 뉴스 기사,정부 간행물,학술 논문등을 바탕으로 정보를 가공하여 제공하는 백과사전형 서비스입니다.
모든 문서는 AI에 의해 자동 생성되며, CC BY-SA 4.0 라이선스에 따라 이용할 수 있습니다.
하지만, 위키백과나 뉴스 기사 자체에 오류, 부정확한 정보, 또는 가짜 뉴스가 포함될 수 있으며, AI는 이러한 내용을 완벽하게 걸러내지 못할 수 있습니다.
따라서 제공되는 정보에 일부 오류나 편향이 있을 수 있으므로, 중요한 정보는 반드시 다른 출처를 통해 교차 검증하시기 바랍니다.
문의하기 : help@durumis.com