Biblioteka klas Java - Java Class Library

Class Library Java ( JCL ) jest zbiorem dynamicznie ładowanych bibliotek że Java Virtual Machine (JVM) Języki mogą dzwonić w czasie wykonywania . Ponieważ platforma Java nie jest zależna od określonego systemu operacyjnego , aplikacje nie mogą polegać na żadnej z natywnych bibliotek platformy. Zamiast tego platforma Java udostępnia kompleksowy zestaw standardowych bibliotek klas , zawierających funkcje wspólne dla nowoczesnych systemów operacyjnych.

JCL służy trzem celom w JVM:

  • Podobnie jak inne standardowe biblioteki kodu , zapewniają programiście dobrze znany zestaw przydatnych udogodnień, takich jak klasy kontenerów i przetwarzanie wyrażeń regularnych .
  • Biblioteka zapewnia abstrakcyjny interfejs do zadań, które normalnie w dużym stopniu zależą od sprzętu i systemu operacyjnego, takich jak dostęp do sieci i dostęp do plików .
  • Niektóre platformy bazowe mogą nie obsługiwać wszystkich funkcji, których oczekuje aplikacja Java. W takich przypadkach implementacja biblioteki może emulować te funkcje lub zapewnić spójny sposób sprawdzania obecności określonej funkcji.

Wdrożenie i konfiguracja

Java Class Library ( JCL ) jest prawie w całości napisana w języku Java, z wyjątkiem części, które wymagają bezpośredniego dostępu do sprzętu i systemu operacyjnego (takich jak we / wy lub grafika bitmapowa ). Klasy, które zapewniają dostęp do tych funkcji, często używają opakowań Java Native Interface w celu uzyskania dostępu do funkcji API systemu operacyjnego .

Prawie cała JCL jest przechowywana w jednym pliku archiwum Java o nazwie „rt.jar”, ​​który jest dostarczany z dystrybucjami JRE i JDK . Biblioteka klas Java (rt.jar) znajduje się w domyślnej ścieżce klas ładowania początkowego i nie musi pojawiać się w ścieżce klas zadeklarowanej dla aplikacji. Środowisko wykonawcze używa programu ładującego klasy ładowania początkowego, aby znaleźć JCL.

Moduł Java System (część Java 9 release) złamał monolityczny „rt.jar” plik JAR i postać modułów samego JCL w kilku modułów z określonymi zależnościami.

Zgodność

Każda implementacja języka Java musi przejść testy Java Technology Compatibility Kit pod kątem zgodności, które obejmują testy JCL.

Główne cechy

Dostęp do funkcji JCL można uzyskać za pośrednictwem klas dostarczonych w pakietach .

Koncesjonowanie

Wcześniejsze licencje

Przed wydaniem OpenJDK JDK był oparty na zastrzeżonej licencji .

Zgodnie z obietnicą wydania w pełni możliwego do zbudowania JDK opartego na prawie całkowicie darmowym i otwartym kodzie źródłowym w pierwszej połowie 2007 roku, firma Sun opublikowała 8 maja 2007 roku kompletny kod źródłowy Biblioteki klas na licencji GPL , z wyjątkiem niektórych ograniczonych części, które były licencjonowane przez firmę Sun od stron trzecich, które nie chciały, aby ich kod był udostępniany na licencji open source. Celem firmy Sun było zastąpienie części, które pozostają zastrzeżone i zamknięte, alternatywnymi implementacjami i uczynienie biblioteki klas całkowicie bezpłatną i otwartą.

Do grudnia 2010 r. Pozostała obciążona część JDK była udostępniana przez Sun, a następnie Oracle, jako wtyczki binarne, które były wymagane do zbudowania JDK, ale nie były konieczne do jego uruchomienia. od maja 2007 r. jedyną częścią biblioteki klas, która pozostała zastrzeżona i zamknięta (4% od maja 2007 r. dla OpenJDK 7 i mniej niż 1% od maja 2008 r. i OpenJDK 6) była:

Od pierwszego wydania z maja 2007 roku Sun, z pomocą społeczności, wydał jako open-source lub zastąpiony alternatywami typu open source prawie cały obciążony kod:

  • Cały kod silnika audio, w tym syntezator oprogramowania , stał się open source. Syntezator oprogramowania o zamkniętym kodzie źródłowym został zastąpiony nowym syntezatorem opracowanym specjalnie dla OpenJDK o nazwie Gervill ,
  • Wszystkie klasy kryptografii zostały udostępnione jako open-source,
  • Kod, który skaluje i rasteryzuje czcionki, korzysta z otwartego źródła FreeType
  • Natywne zarządzanie kolorami wykorzystuje oprogramowanie LittleCMS typu open source . JDK zawiera warstwę, którą można wtykać, dzięki czemu komercyjne wydanie Javy może korzystać z oryginalnego, zastrzeżonego systemu zarządzania kolorami, a OpenJDK może korzystać z LittleCMS.
  • Anti-aliasing grafika rasteryzer kod wykorzystuje open source Ryby renderujący używany w fonem projektu.
  • JavaScript plugin jest open source (the engine JavaScript sam był open source od początku).

Wydanie open source

Od grudnia 2010 r. Wszystkie tak zwane wtyczki binarne zostały zastąpione zamiennikami open source , dzięki czemu cały JDK stał się otwarty.

Alternatywne implementacje

GNU Classpath to kolejna główna biblioteka klas wolnego oprogramowania dla Javy. W przeciwieństwie do innych implementacji, implementuje tylko bibliotekę klas i jest używany przez wiele bezpłatnych środowisk wykonawczych Java (takich jak Kaffe , SableVM , JamVM ).

Apache Harmony to kolejna biblioteka klas wolnego oprogramowania. Jego celem było zaimplementowanie innych części stosu Java ( maszyna wirtualna , kompilator i inne narzędzia wymagane do dowolnej implementacji języka Java ).

Zobacz też

Bibliografia

Linki zewnętrzne