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 .

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

Hivatkozások

Külső linkek