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 .
-
java.lang
zawiera podstawowe klasy i interfejsy ściśle powiązane z językiem i systemem wykonawczym . -
I / O i sieci dostępu platforma systemu plików , a bardziej ogólnie sieci za pośrednictwem
java.io
,java.nio
ijava.net
pakiety. W przypadku sieci SCTP jest dostępny za pośrednictwemcom.sun.nio.sctp
. -
Pakiet Matematyka :
java.math
zawiera wyrażenia matematyczne i oceny, a także typy danych w postaci liczb dziesiętnych i całkowitych o dowolnej precyzji. - Kolekcje i narzędzia: wbudowane struktury danych kolekcji i klasy narzędziowe do wyrażeń regularnych , współbieżności , rejestrowania i kompresji danych .
-
GUI i grafika 2D : podstawowe operacje GUI pakietu AWT (
java.awt
) i wiąże się z podstawowym systemem natywnym. Zawiera również interfejs API grafiki 2D. Swing pakiet (javax.swing
) jest zbudowany na AWT i zapewnia niezależny od platformy widget zestaw narzędzi , jak również Pluggable wygląd . Zajmuje się również edytowalnymi i nieedytowalnymi komponentami tekstowymi. - Dźwięk: interfejsy i klasy do czytania, pisania, sekwencjonowania i syntezy danych dźwiękowych.
- Tekst:
java.text
dotyczy tekstu, dat, liczb i wiadomości. - Pakiet obrazów:
java.awt.image
ijavax.imageio
zapewniają interfejsy API do pisania, odczytywania i modyfikowania obrazów. - XML : SAX , DOM , StAX , transformacje XSLT , XPath i różne API dla usług internetowych , jako protokół SOAP i JAX-WS .
- API CORBA i RMI , w tym wbudowany ORB
- Bezpieczeństwo zapewnia
java.security
i usługi szyfrowaniajavax.crypto
. -
Bazy danych : dostęp do baz danych SQL za pośrednictwem
java.sql
- Dostęp do silników skryptów:
javax.script
Pakiet zapewnia dostęp do dowolnego zgodnego języka skryptowego . -
Aplety :
java.applet
umożliwia pobieranie aplikacji przez sieć i uruchamianie ich w chronionej piaskownicy -
Java Beans :
java.beans
zapewnia sposoby manipulowania komponentami wielokrotnego użytku. - Introspekcja i refleksja: java.lang.Class reprezentuje klasę, ale inne klasy, takie jak Method i Constructor, są dostępne w
java.lang.reflect
.
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:
- SNMP realizacja.
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ż
- Platforma Java, wersja standardowa
- Lista API Java
- OpenJDK
- Darmowe implementacje Java
- Biblioteka standardowa
- Aplet Java
Bibliografia
Linki zewnętrzne
- Strona główna Java SE
- Javadocs interfejsu API Java SE 10
- Dokumentacja Java SE API
- Zestawy programistyczne Java (stan na sierpień 2006):