ГНУ Класпат је пројекат чији је циљ да створи имплементацију стандардних библиотека у облику слободног софтвера за Јава програмски језик. Упркос огромној величини библиотеке која треба да се направи, велики део посла је већ урађен, укључујући Свинг, КОРБА, и друге важне делове.] Класпат програмери су имплементирали скоро све класе са Јавине платформе 1.4 и 5.0. Класпат тако може да се користи за покретање популарних софтвера базираних на Јави као што су Вузе и Еклипс.
ГНУ Класпат је био један од приоритетних ГНУ пројеката. Док је изворни код "званичне" имплементације Сун Мајкросистемс-а био доступан, лиценца није дозвољавала дистрибувију било којих измена. Ово је била једна од главних препрека за многе пројекте који нису могли да напредују без мењања овог кода. ГНУ Класпат заједница за развој обухвата институције које су фокусиране на истраживање Јава виртуелних машина, као и компаније које су заинтересоване за пружање алтернативних Јавиних система за извршавање.
JNode, оперативни систем који покреће Јавине апликације. Овај систем је написан у Јави.
Специјализоване виртуелне машине као што је Јаос за спајање са Обероном, и ЈамаикаВМ за уграђен систем са реалним гаранцијама
Виртуелне машине за рачунарство са кластерима, које имају и до 128 процесора на Маринет-у.[2]
IcedTea пројекат који користи ГНУ Класпат као замену за власничке елементе ОпенЈДК-а.
Историја
Развој ГНУ Класпат-а је почео 1998. године са пет програмера. Током историје, спајао се неколико пута са другим пројектим који су имали сличне циљеве (Кафе, либгцј). У прошлости, ГНУ Класпат је снабдевао своју виртуелну машину (Јафар). Како је Класпат постао основна библиотека, дељена у много различитих пројеката, ова виртуелна машина је све мање пажње добијала и сада више није подржана.
Након имплементирања већине Јавиних 1.4 АПИ, рад на пројекту је постао много више оријентисан на багове него на АПИ развој. 24. октобра 2006. године, имплементација последње 1.4 класе која је фалила, HTML писач, је извршена. Брзина развоја (математички прорачуната преко просечног броја линија кода по дану) је достигла највећу могућу за 2006. годину.
Име ГНУ Класпат је првобитно предложио Бредли М. Кун једном од првих развојних програмера, Полу Фишеру. У то време, је постојала велика забринутост за заједницу бесплатних Јавиних имплементација због коришћења Сан-овог оригиналног занака на Јавиним имплементацијама. Кун је предложио назив $CLASSPATH, која представља променљиву окружења коју је користила већина Јавиних система како би указала где су Јавине библиотеке смештене на рачунару. Пошто се $CLASSPATH често користио и као име путање, укључивао је реч јава (као што је /usr/lib/java), то је био начин да пробуди име Јава а да се не изговори буквално. Фишер и други програмери нису волим употребу знака $ као ни велика слова која су се користила у Класпат-у.
Развојни тим
Одржавалац се брине о легалној страни пројекта, припрема редовна издања пројеката и извршава проверу квалитета. Одржавалац такође даје дозволе за приступ ЦВС-у.
ГНУ Цласспатх нема формалну хијерархију. Рад се обавља највише на основу техничких могућности и не постоји строга подела послова. Све промене кода се прво постављају на листу за дискусију као закрпе где могу додатно да се мењају или одбацују ако је потребно. Пројекат обично прима између пет и осам закрпа дневно.
Развој прекривености кодом ГНУ-ове Класпат библиотеке се може пратити преко ОпенЈДК6[3] и ОпенЈДК7.[4]
Спајање виртуалних машина
ГНУ Класпат садржи класе из званичног Јавиног АПИ именског простора. Онде где се захтева или је веома препоручљиво да се користи изворни код, извршавање се обавља из неколико "ВМ" класа. Име неке ВМ класе одговара називу класе која захтева изворни код, плус додатни ВМ префикс: ВМ Објекат, ВМ Стринг и тако даље. ВМ класе, које се чувају одвојено од остатка кода, су приватни и финални пакети. Методе ових класа садрже кључну реч изворни, указујући на неопходност подршке изворне библиотеке. Такве библиотеке су омогућили аутори Јава виртуалних машина, стога ГНУ Класпат може бити повезан са скоро сваком Јава виртуелном машином ако су извори те виртуалне машине доступни и могу да се модификују.
Подршка за карактеристике нових језика у Јави 1.5
Пре верзије 0.95, свака ГНУ Класпат верзија се састојала од две одвојене објаве; једна, која представља главну грану развоја и друга који је носила садржај више експерименталних грана, поправке и додатке, као што су генериче, гране за набрајање и коментаре, које се појављују у Јави 1.5.[5]
Од верзије 0.95,[6] Јавини 1.5 додаци како што су генерички су били потпуно стпојени са главном граном. Грана може бити изграђена коришћењем Еклипс компајлера, ецј, како би се направио Јава 1,5 изворни код. У случају ГЦЈ-а, ецј се користи како би се обавила почетна фаза, а онда да се преведе биткод у изворни код. Од верзије 0.95 па надаље, ГНУ Класпат такође подржава израду и покретање новог ГПЛЈава компајлера отвореног кода који користи ГНУ Класпат и дозвољава да ГНУ Кластпат библиотеке, алати и недовршене верзије буду компајлиране са јавак-ом.
Класе из домена omg.org
ГНУ Класпат не прихвата ниједан код који нема бесплатну лиценцу, или који је аутоматски направљен од кода који нема бесплатну лиценцу. Стандардни Јава АПИ садржи велики број класа из омг.орг домена које су обично направљене из ИДЛ фајлова, и објављене од стране Групе за управљање објектима. "Употреби, али не и модифуј" лиценца ових фајлова се сматра не-бесплатном. Из тог разлога, поменуте ГНУ Кластпат класе су написане од нуле, користећи се само званичним ОМГ спецификацијама. Због тога је овај део ГНУ Класпат-а слободан као и било који други код у пројекту.
^"GNU Classpath "95% and counting" 0.19 released", The GNU Project (announcement), Software, The Free Software Foundation, 2005-11-02, retrieved 31 May 2011.
^"The release of GNU Classpath 0.98 "Better Late Than Never", The GNU Project (announcement), Software, The Free Software Foundation, 2009-02-05.