Knihovna tříd Java - Java Class Library - Wikipedia
![]() | tento článek potřebuje další citace pro ověření.Srpna 2011) (Zjistěte, jak a kdy odstranit tuto zprávu šablony) ( |
The Knihovna tříd Java (JCL) je sada dynamicky načítatelné knihovny že Jazyky Java Virtual Machine (JVM) může volat na doba běhu. Protože Platforma Java není závislá na konkrétním operační systém, aplikace se nemohou spoléhat na žádnou z knihoven nativních pro platformu. Místo toho poskytuje Java Platform komplexní sadu standardní třídní knihovny, obsahující funkce společné pro moderní operační systémy.
JCL slouží třem účelům v rámci JVM:
- Jako ostatní standardní knihovny kódů, poskytují programátorovi dobře známou sadu užitečných zařízení, jako je třídy kontejnerů a regulární výraz zpracovává se.
- Knihovna poskytuje abstraktní rozhraní k úkolům, které by obvykle silně závisely na hardwaru a operačním systému, jako je síť přístup a soubor přístup.
- Některé základní platformy nemusí podporovat všechny funkce, které aplikace Java očekává. V těchto případech může implementace knihovny tyto funkce buď emulovat, nebo poskytnout konzistentní způsob kontroly přítomnosti konkrétní funkce.
Implementace a konfigurace
Knihovna tříd Java (JCL) je téměř celý napsán v Javě, s výjimkou částí, které vyžadují přímý přístup k Hardware a operační systém (například pro I / O nebo bitmapová grafika ). Třídy, které poskytují přístup k těmto funkcím, se běžně používají Nativní rozhraní Java obálky pro přístup k operačnímu systému API.
Téměř všechny JCL jsou uloženy v jednom Archiv Java soubor s názvem "rt.jar", který je dodáván s JRE a JDK distribuce. Knihovna tříd Java (rt.jar) je umístěna ve výchozí bootspase classpath[1] a nemusí se objevit v classpath deklarované pro aplikaci. The runtime používá zavaděč třídy bootstrap k nalezení JCL.
The Systém modulů Java (část Java 9 vydání) prolomil monolitický soubor „rt.jar“ JAR a modularizoval samotný JCL v několika modulech se specifikovanými závislostmi.[2]
Shoda
Jakákoli implementace Java musí projít Java Sada pro technologickou kompatibilitu testy shody, které zahrnují testy JCL.
Hlavní rysy
K funkcím JCL se přistupuje prostřednictvím třídy uvedené v balíčky.
java.lang
obsahuje základní třídy a rozhraní úzce spjatý s jazykem a runtime systém.- I / O a síťování přístup na platformu souborový systém a obecněji sítí skrz
java.io
,java.nio
ajava.net
balíčky. Pro vytváření sítí SCTP je k dispozici prostřednictvímcom.sun.nio.sctp
. - Matematický balíček:
java.math
poskytuje matematické výrazy a vyhodnocení, stejně jako datové typy s desetinnou a celočíselnou přesností s libovolnou přesností. - Sbírky and Utilities: built-in Collection datové struktury, a tříd užitku, pro Regulární výrazy, Konkurence, protokolování a Komprese dat.
- GUI a 2D grafika: AWT balíček (
java.awt
) základní operace GUI a váže se na základní nativní systém. Obsahuje také rozhraní 2D Graphics API. The Houpačka balíček (javax.swing
) je postaven na AWT a poskytuje nezávislou na platformě sada nástrojů widget, stejně jako a Zapojitelný vzhled a chování. Zabývá se také upravitelnými a neupravitelnými textovými komponentami. - Zvuk: rozhraní a třídy pro čtení, psaní, sekvenování, a syntetizovat zvukových dat.
- Text:
java.text
se zabývá textem, daty, čísly a zprávami. - Balíček obrázků:
obrázek java.awt
ajavax.imageio
poskytují API pro psaní, čtení a úpravy obrázků. - XML: SAXOFON, DOM, StAX, Transformace XSLT, XPath a různé API pro webové služby, tak jako SOAP protokol a JAX-WS.
- CORBA a RMI API, včetně vestavěného KOULE
- Zabezpečení zajišťuje
java.security
a šifrovací služby poskytujejavax.crypto
. - Databáze: přístup k SQL databáze prostřednictvím
java.sql
- Přístup k skriptovacím strojům:
javax.script
balíček umožňuje přístup ke všem vyhovujícím Skriptovací jazyk. - Applety:
java.applet
umožňuje stahování aplikací přes síť a provozování v hlídaném karanténě - Java fazole:
java.beans
poskytuje způsoby, jak manipulovat s opakovaně použitelnými součástmi. - Introspekce a reflexe: java.lang.Class představuje třídu, ale další třídy, jako je metoda a konstruktor, jsou k dispozici v
java.lang.reflect
.
Licencování
Předchozí licence
Před vydáním OpenJDK JDK byl založen na proprietární licence.
V návaznosti na jejich slib vydat plně sestavitelný JDK na základě téměř zcela bezplatného a otevřeného zdrojového kódu v první polovině roku 2007,[3] Sun vydal kompletní zdrojový kód třídní knihovny pod GPL 8. května 2007, s výjimkou některých omezených částí, které byly licencovány společností Sun od třetích stran, které nechtěly, aby byl jejich kód vydán pod licencí open-source.[4] Cílem společnosti Sun bylo nahradit části, které zůstávají chráněným a uzavřeným zdrojem, alternativními implementacemi a učinit Knihovnu tříd zcela bezplatnou a otevřenou.
Do prosince 2010 byla zbývající zatěžovaná část JDK zpřístupněna společností slunce pak Věštec tak jako Binární zástrčky[5] které byly potřebné k vybudování JDK, ale nebyly nutné k jeho spuštění. od května 2007[Aktualizace], jediná část knihovny Class, která zůstala proprietární a uzavřený zdroj (4% od května 2007[Aktualizace] pro OpenJDK 7,[6] a méně než 1% od května 2008[Aktualizace] a OpenJDK 6[7][8]) byl:[9][10]
Od prvního vydání z května 2007 vydala společnost Sun s pomocí komunity jako open-source nebo nahradila alternativy open-source téměř veškerý zatížený kód:
- Veškerý kód zvukového modulu, včetně softwarový syntetizátor, se stal otevřeným zdrojem.[10][11] Softwarový syntetizátor uzavřeného zdroje byl nahrazen novým syntetizátorem vyvinutým speciálně pro OpenJDK Gervill,[12]
- Všechno kryptografie třídy byly vydány jako open-source,[13]
- Kód, který se mění a rastruje písma používá otevřený zdroj FreeType[14][15][16]
- Rodák správa barev používá open-source LittleCMS.[15] V JDK je připojitelná vrstva, takže komerční vydání Javy může používat původní proprietární systém správy barev a OpenJDK může používat LittleCMS.
- The Anti aliasing grafika rasterizer kód používá open source vykreslovač Pisces použitý v foném projekt.[15][17][18]
- The JavaScript plugin je otevřený zdroj ( JavaScriptový engine sám o sobě byl od začátku otevřeným zdrojem).[19]
Vydání open source
Počínaje prosincem 2010, všechny tzv binární zástrčky byly nahrazeny otevřený zdroj výměny, čímž se otevře celý JDK.[20]
Alternativní implementace
GNU Classpath je další hlavní bezplatná knihovna tříd softwaru pro Javu. Na rozdíl od jiných implementací implementuje pouze knihovnu tříd a používá ji mnoho bezplatné runtime Java (jako Kaffe, SableVM, JamVM ).
Apache Harmony byla další bezplatná knihovna tříd softwaru. Jejím cílem bylo implementovat ostatní části zásobníku Java (Virtuální stroj, Překladač a další nástroje potřebné pro všechny Implementace Java ).
Viz také
- Platforma Java, standardní vydání
- Seznam Java API
- OpenJDK
- Zdarma implementace Java
- Standardní knihovna
- Applet Java
Reference
- ^ „Jak se třídy nacházejí“. Oracle Corporation. Citováno 2015-12-05.
- ^ "Souhrn modulu JDK". Oracle Corporation. 2015-10-23. Citováno 2015-11-29.
- ^ [1]
- ^ Rich Green (08.05.2007). „Otevřená JDK je tady!“. Sun Microsystems. Citováno 2011-11-25.
- ^ „Binární zástrčky OpenJDK“. Sun Microsystems. 8. května 2007. Archivovány od originál dne 26. 8. 2012. Citováno 2011-11-25.
- ^ Fitzsimmons, Thomas (18. 05. 2007). „Plans for OpenJDK“. Citováno 2007-05-22.
- ^ Angel, Lillian (2008-03-13). "OpenJDK jako náhrada IcedTea ve Fedoře 9". Archivovány od originál dne 2012-12-10. Citováno 2008-04-05.
- ^ Wade, Karsten (2008-03-13). "OpenJDK ve Fedoře 9!". redhatmagazine.com. Archivovány od originál dne 2008-04-21. Citováno 2008-04-05.
Thomas Fitzsimmons aktualizoval zdrojové stránky poznámek k vydání Fedory 9 tak, aby odrážely, že Fedora 9 bude dodávána s OpenJDK 6 namísto implementace OpenJDK 7. IcedTea 7. Vydání Fedory 9 (Sulphur) má být v květnu 2008.
- ^ Herron, David (04.10.2007). „Plans for OpenJDK“. Archivovány od originál dne 11.10.2007. Citováno 2007-10-09.
- ^ A b C „Zdroj OpenJDK 6 b10 zveřejněn“. 2008-05-30. Citováno 2008-06-01.
- ^ stránka projektu audio-enginu
- ^ „Gervill - softwarový syntetizátor“. Archivovány od originál dne 04.10.2011. Citováno 2008-06-01.
- ^ „Kryptoměna byla přidána do OpenJDK“. 2007-09-27. Citováno 2007-10-07.
- ^ stránka projektu škálovače písem
- ^ A b C Stránka projektu Java2D
- ^ "Freetype font rasteriser". 2007-08-07. Citováno 2007-11-24.
- ^ phoneme.dev.java.net/ Archivováno 10.06.2007 na Wayback Machine
- ^ stránka projektu grafického rasterizátoru
- ^ "Javascript je zatížen a neexistuje žádná podpora pluginu javascript". Ledový čaj. 2008-03-11. Citováno 2008-06-01.
Změna souhrnu. JavaScript již není zatížen, ale stále potřebujeme podporu liveconnect.
- ^ Kelly O'Hair (prosinec 2010). „Logika binárních zástrček OpenJDK7 a OpenJDK6 byla odstraněna“. Oracle Corporation. Citováno 2011-11-25.
externí odkazy
- Hlavní stránka Java SE
- Java SE 10 API Javadocs
- Dokumentace API Java SE
- Soupravy pro vývoj softwaru Java (stav k srpnu 2006[Aktualizace]):