Ścieżka klasy GNU - GNU Classpath
Deweloper (y) |
Projekt GNU (formalnie posiadany przez FSF ) |
---|---|
Wersja ostateczna | 0,99 / 16 marca 2012 r .
|
Magazyn | |
Napisane w | C i Java |
System operacyjny | Wieloplatformowy |
Rodzaj | Biblioteka |
Licencja | Wyjątek dotyczący łączenia GPL |
Stronie internetowej | www |
GNU Classpath jest darmową implementacją standardowej biblioteki klas dla języka programowania Java . Zaimplementowano większość klas z J2SE 1.4 i 5.0. Classpath może być zatem używany do uruchamiania Java oparte aplikacji . GNU Classpath jest częścią Projektu GNU . Pierwotnie został opracowany równolegle z libgcj z powodu niezgodności licencji, ale później oba projekty zostały połączone.
GNU Classpath został uznany za projekt o wysokim priorytecie przez Free Software Foundation . Kiedy rozpoczął się projekt Classpath, licencja na oficjalną implementację Java firmy Sun Microsystems nie zezwalała na dystrybucję żadnych zmian. Od momentu powstania projektu Classpath, OpenJDK został wydany na licencji GPL i teraz służy jako oficjalna implementacja referencyjna dla platformy Java .
Licencja
GNU Classpath jest objęty licencją na podstawie Powszechnej Licencji Publicznej GNU z wyjątkiem dotyczącym łączenia . To jest licencja wolnego oprogramowania . Cały kod jest formalnie własnością Free Software Foundation , a właściciel ten jest związany własnymi zobowiązaniami umownymi wobec programistów.
Używa
GNU Classpath jest używany przez wiele bezpłatnych środowisk wykonawczych Java (takich jak Kaffe , SableVM , JamVM , Jikes RVM i VMKit), ponieważ każda w pełni funkcjonalna maszyna wirtualna Java musi zapewniać implementację standardowych bibliotek klas.
Niektóre inne zastosowania obejmują:
- GNU Compiler for Java , która jest zdolna do kompilacji kodu Java do natywnych plików wykonywalnych autonomicznych.
- GCJAppletViewer do uruchamiania apletów Java z wiersza poleceń, jeśli nie są obsługiwane przez używaną przeglądarkę.
- IKVM.NET , który integruje Javę z .NET Framework
- JNode, system operacyjny do uruchamiania aplikacji Java. Ten system jest napisany tylko w Javie i asemblerze.
- Specjalistyczne maszyny wirtualne, takie jak Jaos do integracji z językiem programowania Oberon i JamaicaVM do systemów wbudowanych z gwarancjami czasu rzeczywistego.
- Maszyny wirtualne do przetwarzania rozproszonego z klastrami, posiadające do 128 procesorów w Myrinet .
- Projekt IcedTea wykorzystywał GNU Classpath jako zamiennik zastrzeżonych elementów OpenJDK , przed ich zastąpieniem przez autorów.
Historia
Rozwój GNU Classpath rozpoczął się w 1998 roku z pięcioma programistami. W historii łączył się kilkakrotnie z innymi projektami o podobnych celach ( Kaffe , libgcj). W przeszłości GNU Classpath dostarczało własną maszynę wirtualną (Japhar). Ponieważ Classpath stawał się biblioteką podstawową, współdzieloną z wieloma różnymi projektami, ta maszyna wirtualna otrzymywała coraz mniej uwagi i nie jest już obsługiwana.
Po wdrożeniu większości oficjalnego API Java 1.4, prace nad projektem stały się bardziej zorientowane na błędy, a nie na pokrycie API. 24 października 2006 roku została zatwierdzona implementacja ostatniej brakującej klasy 1.4, HTMLWriter . Szybkość rozwoju (obliczona matematycznie jako średnia liczba nowych linii kodu dziennie) osiągnęła najwyższą w 2006 roku.
Nazwa GNU Classpath została pierwotnie zasugerowana przez Bradleya M. Kuhna jednemu z pierwszych programistów, Paulowi Fishera. W tamtym czasie w społeczności implementacji wolnej Javy istniało duże zaniepokojenie wymuszaniem egzekwowania znaku towarowego firmy Sun na Javie w stosunku do bezpłatnych implementacji. Kuhn zasugerował nazwę $ CLASSPATH , która jest zmienną środowiskową używaną przez większość systemów Java do wskazania, gdzie na komputerze znajdują się biblioteki Java. Ponieważ $ CLASSPATH często rozszerzało się do nazwy ścieżki zawierającej słowo java (na przykład /usr/lib/java
), był to sposób na wywołanie nazwy Java bez jej wypowiadania. Fisher i inni programiści nie lubili brzydkiego użycia znaku $ i wszystkich wielkich liter i zdecydowali się na Classpath .
Zespół deweloperski
Opiekun dba o prawną stronę projektu, przygotowuje regularne wersje projektu i zarządza jakością. Opiekun przyznaje również uprawnienia dostępu do CVS .
GNU Classpath nie ma formalnej hierarchii. Praca jest wykonywana przez najbardziej uzdolnionych technicznie, nie ma też ścisłego podziału pracy. Wszystkie zmiany w kodzie są najpierw publikowane na liście dyskusyjnej jako poprawki, w których w razie potrzeby można się im przeciwstawić. Projekt zazwyczaj otrzymuje od pięciu do ośmiu poprawek dziennie.
Postęp pokrycia kodu biblioteki GNU Classpath można śledzić względem OpenJDK6 i OpenJDK7.
Integracja z maszynami wirtualnymi
GNU Classpath zawiera klasy z oficjalnej przestrzeni nazw Java API. Tam, gdzie wywołania kodu natywnego są konieczne lub bardzo pożądane, odbywa się to z niewielkiej liczby klas „VM”. Nazwa takiej klasy maszyny wirtualnej odpowiada nazwie klasy wymagającej metod natywnych oraz dodatkowemu prefiksowi maszyny wirtualnej : VMObject, VMString i tak dalej. Klasy maszyn wirtualnych, przechowywane oddzielnie od reszty kodu, są pakietami prywatnymi i ostatecznymi . Metody tych klas zawierają słowo kluczowe native , wskazujące na konieczność obsługi biblioteki natywnej. Takie biblioteki są dostarczane przez autorów wirtualnej maszyny Javy, stąd GNU Classpath można połączyć z prawie każdą wirtualną maszyną Javy, jeśli źródła takiej maszyny wirtualnej są dostępne i można je modyfikować.
Obsługa nowych funkcji językowych w Javie 1.5
Przed wersją 0.95 każde wydanie GNU Classpath składało się z dwóch oddzielnych paczek z wydaniami; jeden, który reprezentował stan głównej gałęzi programistycznej, a drugi, który zawierał zawartość gałęzi bardziej eksperymentalnej, obsługującej dodatki, takie jak typy generyczne, wyliczenia i adnotacje, obecne w Javie 1.5.
Od wersji 0.95, dodatki Java 1.5, takie jak generics, zostały w pełni zintegrowane z główną gałęzią. Gałąź można zbudować za pomocą kompilatora Eclipse , ecj, w celu skompilowania kodu źródłowego Java 1.5 do kodu bajtowego. W przypadku GCJ używa ecj do wykonania tego początkowego etapu, a następnie konwertuje kod bajtowy na kod natywny. Od 0,95 roku, GNU Classpath obsługuje również skompilowanie i uruchomienie nowo GPLed open source javac kompilator używając GNU Classpath, a także pozwala klasa biblioteka GNU Classpath, narzędzia i przykłady, które są zestawiane z javac samego.
Zajęcia z domeny omg.org
GNU Classpath nie akceptuje żadnego kodu, który ma licencję inną niż wolna lub który został automatycznie wygenerowany z kodu z licencją inną niż wolna. Standardowy interfejs API języka Java zawiera liczne klasy z domeny omg.org, które są zwykle generowane z plików IDL , udostępnianych przez Object Management Group . Licencja „używaj, ale nie modyfikuj” tych plików jest traktowana jako licencja płatna. Z tego powodu wspomniane klasy w projekcie GNU Classpath zostały napisane od podstaw, przy użyciu tylko oficjalnych drukowanych specyfikacji OMG. Dlatego ta część GNU Classpath jest tak samo wolna jak każdy inny kod w projekcie.
Zobacz też
- Apache Harmony
- Kompilator GNU dla Javy
- IKVM.NET
- JamVM
- JamaicaVM
- Jaos
- JikesRVM
- Kaffe
- Mrożona herbata
- Darmowe implementacje Java
- Biblioteka klas Java
Uwagi
Bibliografia
Linki zewnętrzne
- Oficjalna strona internetowa
- „Automatycznie generowana dokumentacja, w tym kod źródłowy”, Classpath .
- „Builder”, Classpath : testy i testy zgodności binarnej
- Deweloper GNU Classpath (maj 2006), „Stan współpracy w ramach projektów wolnych java” , cotygodniowe wiadomości na temat GNU / Linuksa (artykuł) .
- „Permeable Development”, SMI ( dziennik sieci WWW ), CH : ETHZ, 25.01.2006, zarchiwizowane od oryginału w dniu 20.07.2006 r. .