Java osztálykönyvtár - Java Class Library
A Java Class Library ( JCL ) egy dinamikusan betölthető könyvtárak összessége, amelyeket a Java Virtual Machine (JVM) nyelvei futás közben meghívhatnak . Mivel a Java Platform nem függ egy adott operációs rendszertől , az alkalmazások nem támaszkodhatnak egyetlen platform-natív könyvtárra sem. Ehelyett a Java Platform átfogó szabványos osztálykönyvtárakat kínál , amelyek a modern operációs rendszerek közös funkcióit tartalmazzák.
A JCL három célt szolgál a JVM-en belül:
- Más szabványos kódkönyvtárakhoz hasonlóan ezek is a programozó számára nyújtanak jól ismert hasznos szolgáltatásokat, például tárolóosztályokat és rendszeres kifejezésfeldolgozást .
- A könyvtár absztrakt felületet biztosít olyan feladatokhoz, amelyek általában nagymértékben függenek a hardvertől és az operációs rendszertől, mint például a hálózati hozzáférés és a fájlhozzáférés .
- Egyes mögöttes platformok nem biztos, hogy támogatják az összes olyan funkciót, amelyet egy Java alkalmazás elvár. Ezekben az esetekben a könyvtár megvalósítása vagy emulálhatja ezeket a szolgáltatásokat, vagy következetes módot kínál egy adott szolgáltatás jelenlétének ellenőrzésére.
Megvalósítás és konfigurálás
A Java Class Library ( JCL ) szinte teljes egészében Java nyelven íródott, kivéve azokat az alkatrészeket, amelyek közvetlen hozzáférést igényelnek a hardverhez és az operációs rendszerhez (például I / O vagy bitképes grafikákhoz ). Az ezen funkciókhoz hozzáférést biztosító osztályok általában a Java Native Interface burkolókat használják az operációs rendszer API-k elérésére .
A JCL szinte teljes egészét egyetlen Java archív fájl tárolja, az úgynevezett "rt.jar", amelyet JRE és JDK disztribúciókkal látnak el . A Java Class Library (rt.jar) az alapértelmezett bootstrap classpath-ban található, és nem kell megjelennie az alkalmazás számára deklarált classpath-ban . A futás során a bootstrap osztályú betöltő használja a JCL megtalálásához.
A Java modulrendszer (a Java 9 kiadás része) megtörte a monolitikus "rt.jar" JAR fájlt, és magát a JCL-t modulálta több modulban, meghatározott függőségekkel.
Megfelelés
Minden Java implementációnak meg kell felelnie a Java Technology Compatibility Kit teszteknek a megfelelés érdekében, ideértve a JCL teszteket is.
Főbb jellemzői
A JCL funkciók csomagokban megadott osztályokon keresztül érhetők el .
-
java.langalapvető osztályokat és interfészeket tartalmaz, amelyek szorosan kapcsolódnak a nyelvhez és a futásidejű rendszerhez . -
I / O és hálózati hozzáférést a platform fájlrendszer , és általánosabban hálózatok révén
java.io,java.nioésjava.netcsomagokat. Hálózatépítéshez az SCTP keresztül érhető elcom.sun.nio.sctp. -
Matematikai csomag :
java.mathmatematikai kifejezéseket és kiértékelést, valamint tetszőleges pontosságú decimális és egész szám adattípusokat biztosít. - Gyűjtemények és segédprogramok: beépített Gyűjtemény adatstruktúrák és segédprogram osztályok a reguláris kifejezésekhez , az egyidejűséghez , a naplózáshoz és az adattömörítéshez .
-
GUI és 2D grafika : az AWT csomag (
java.awt) alapvető GUI műveletek és az alapul szolgáló natív rendszerhez kötődik. Tartalmazza a 2D Graphics API-t is. A Swing csomag (javax.swing) az AWT-re épül, és platformfüggetlen widget eszköztárat , valamint Pluggable megjelenést és hangulatot biztosít . Szerkeszthető és nem szerkeszthető szövegkomponensekkel is foglalkozik. - Hang: interfészek és osztályok a hangadatok olvasásához, írásához, szekvenálásához és szintetizálásához .
- Szöveg:
java.textszöveggel, dátumokkal, számokkal és üzenetekkel foglalkozik. - Képcsomag:
java.awt.imageésjavax.imageiobiztosítson API-kat a képek írásához, olvasásához és módosításához. - XML : SAX , DOM , StAX , XSLT transzformációk , XPath és különféle API-k a webszolgáltatásokhoz , mint SOAP protokoll és JAX-WS .
- CORBA és RMI API-k, beleértve a beépített ORB-t
- A biztonságot
java.securityés a titkosítási szolgáltatásokat nyújtjajavax.crypto. -
Adatbázisok : hozzáférés az SQL adatbázisokhoz a következőn keresztül:
java.sql - Hozzáférés a parancsfájlmotorokhoz: A
javax.scriptcsomag hozzáférést biztosít bármely megfelelő szkriptnyelvhez . -
Kisalkalmazások :
java.appletlehetővé teszi az alkalmazások hálózatról történő letöltését és egy őrzött homokozóban történő futtatását -
Java Beans : lehetőséget
java.beansnyújt az újrafelhasználható összetevők manipulálására. - Önvizsgálat és reflexió: a java.lang.Class egy osztályt képvisel, de más osztályok, például a Method és a Constructor, itt érhetők el
java.lang.reflect.
Engedélyezés
Előzetes engedélyek
Az OpenJDK megjelenése előtt a JDK saját licencen alapult .
Miután ígéretet tettek egy teljesen felépíthető JDK kiadására, amely szinte teljesen ingyenes és nyílt forráskódú kódokon alapul 2007 első félévében, a Sun 2007. május 8-án kiadta a GPL szerinti Osztálykönyvtár teljes forráskódját , kivéve néhány korlátozott részt, olyan harmadik felektől engedélyezte őket a Sun, akik nem akarták, hogy kódjaikat nyílt forráskódú licenc alapján adják ki. A Sun célja az volt, hogy a tulajdonosi és zárt forráskódú alkatrészeket alternatív megvalósításokkal cserélje ki, és az osztálykönyvtárt teljesen ingyenes és nyílt forráskódúvá tegye.
2010 decemberéig, a fennmaradó megterhelt része a JDK bocsátott rendelkezésre Sun majd az Oracle a bináris Dugók ami kellett építeni a JDK, de nem szükséges a futtatáshoz. 2007 májusától a Class könyvtár egyetlen része, amely tulajdonosi és zárt forráskódú maradt (2007 májusától 4% az OpenJDK 7 esetében, és kevesebb, mint 1% 2008 májusától és az OpenJDK 6-tól):
- Az SNMP megvalósítása.
A 2007. május első kiadása óta a Sun a közösség segítségével nyílt forráskódúként vagy nyílt forráskódú alternatívákkal helyettesítette szinte az összes megterhelt kódot:
- A hangmotor összes kódja, beleértve a szoftverszintetizátort is , nyílt forráskódúvá vált. A zárt forráskódú szoftverszintetizátort egy új, kifejezetten az OpenJDK számára kifejlesztett szintetizátor váltotta fel Gervill néven ,
- Az összes kriptográfiai osztály nyílt forráskódú volt,
- A betűtípusokat méretező és raszterizáló kód a nyílt forráskódú FreeType-t használja
- A natív színkezelés nyílt forráskódú LittleCMS -t használ . Van egy bedugható réteg a JDK-ban, így a Java kereskedelmi kiadásai az eredeti, saját színkezelő rendszert, az OpenJDK pedig a LittleCMS-t használhatják.
- Az anti-aliasing grafikákat raszterizáló kódot használja a nyílt forráskódú Halak renderelő használt fonéma projektben.
- A JavaScript plugin nyílt forráskódú (a JavaScript motor maga volt a kezdetektől fogva nyílt forráskódú).
Nyílt forráskódú kiadás
Elején 2010 decemberében, az összes úgynevezett bináris dugók váltották nyílt cserék, ami az egész JDK nyitva.
Alternatív megvalósítások
A GNU Classpath a másik fő ingyenes szoftver osztálykönyvtár a Java számára. Más megvalósításokkal ellentétben csak az Osztálykönyvtárat valósítja meg, és sok ingyenes Java futásideje használja (például Kaffe , SableVM , JamVM ).
Az Apache Harmony egy másik ingyenes szoftver osztálykönyvtár volt. Célja a Java verem többi részének ( virtuális gép , fordító és minden egyéb Java megvalósításhoz szükséges eszköz ) megvalósítása volt .
Lásd még
- Java Platform, Standard Edition
- Java API-k listája
- OpenJDK
- Ingyenes Java implementációk
- Normál könyvtár
- Java kisalkalmazás
Hivatkozások
Külső linkek
- Java SE Főoldal
- Java SE 10 API Javadocs
- Java SE API dokumentáció
- Java szoftverfejlesztő készletek (2006. augusztusi állapot):