Java Class Library - Java Class Library

Den Java Class Library ( JCL ) er et sæt af dynamisk belastbare biblioteker at Java Virtual Machine (JVM) sprog kan ringe på kørselstidspunktet . Fordi Java-platformen ikke er afhængig af et specifikt operativsystem, kan applikationer ikke stole på nogen af ​​de platform-native biblioteker. I stedet giver Java-platformen et omfattende sæt standardklassebiblioteker , der indeholder de funktioner, der er fælles for moderne operativsystemer.

JCL tjener tre formål inden for JVM:

  • Ligesom andre standardkodebiblioteker giver de programmøren et velkendt sæt nyttige faciliteter, såsom containerklasser og regulær ekspressionsbehandling .
  • Biblioteket giver en abstrakt grænseflade til opgaver, der normalt afhænger meget af hardware og operativsystem, såsom netværksadgang og filadgang .
  • Nogle underliggende platforme understøtter muligvis ikke alle de funktioner, som en Java-applikation forventer. I disse tilfælde kan implementeringen af ​​biblioteket enten efterligne disse funktioner eller give en konsekvent måde at kontrollere for tilstedeværelsen af ​​en bestemt funktion.

Implementering og konfiguration

Java Class Library ( JCL ) er næsten udelukkende skrevet på Java bortset fra de dele, der har brug for direkte adgang til hardware og operativsystem (f.eks. Til I / O- eller bitmapgrafik ). De klasser, der giver adgang til disse funktioner, bruger ofte Java Native Interface- indpakninger til at få adgang til operativsystemets API'er .

Næsten hele JCL er gemt i en enkelt Java-arkivfil kaldet "rt.jar", der leveres med JRE- og JDK- distributioner. Java Class Library (rt.jar) er placeret i standard bootstrap-klassestien og behøver ikke at blive vist på den klassesti, der er angivet for applikationen. Den runtime bruger bootstrap klasse loader for at finde den JCL.

Den Java Modul Systemet (en del af Java 9 frigivelse) brød den monolitiske "rt.jar" JAR-filen og modulariseret den JCL selv i flere moduler med specificerede afhængigheder.

Overensstemmelse

Enhver Java-implementering skal bestå testene for Java Technology Compatibility Kit for overholdelse, som inkluderer JCL-tests.

Hovedtræk

Der er adgang til JCL-funktioner gennem klasser, der leveres i pakker .

Licensering

Forudgående licenser

Før frigivelsen af ​​OpenJDK var JDK baseret på en licens .

Efter deres løfte om at frigive en fuldt opbyggelig JDK baseret på næsten helt gratis og open source-kode i første halvdel af 2007, frigav Sun den komplette kildekode til Class Library under GPL den 8. maj 2007, bortset fra nogle begrænsede dele, der blev licenseret af Sun fra tredjeparter, der ikke ønskede, at deres kode skulle frigives under en open source-licens. Suns mål var at erstatte de dele, der forbliver proprietære og lukkede kilder med alternative implementeringer og gøre Class Library helt gratis og open source.

Indtil december 2010 blev den tilbageværende del af JDK stillet til rådighed af Sun og derefter Oracle som binære stik, der var nødvendige for at bygge JDK, men ikke nødvendige for at køre den. fra maj 2007 var den eneste del af klassebiblioteket, der forblev proprietær og lukket kilde (4% fra maj 2007 for OpenJDK 7 og mindre end 1% fra maj 2008 og OpenJDK 6):

  • Den SNMP implementering.

Siden den første frigivelse i maj 2007 frigav Sun med hjælp fra samfundet som open source eller blev erstattet med open source-alternativer næsten al den besværede kode:

  • Al lydmotorkoden, inklusive softwaresynthesizeren , blev open source. Den lukkede kildesoftwaresynthesizer er blevet erstattet af en ny synthesizer udviklet specielt til OpenJDK kaldet Gervill ,
  • Alle kryptografiklasser blev frigivet som open source,
  • Koden, der skalerer og rasteriserer skrifttyper, bruger FreeType med open source
  • Den oprindelige farvestyring bruger open source LittleCMS . Der er et pluggbart lag i JDK, så den kommercielle frigivelse af Java kan bruge det originale, proprietære farvestyringssystem, og OpenJDK kan bruge LittleCMS.
  • Den anti-aliasing grafik rasteriser kode bruger open source Fiskene renderer anvendes i fonem -projektet.
  • Den JavaScript plugin er open source (den JavaScript-motor selv var open source fra begyndelsen).

Open source frigivelse

Begyndende i december 2010 blev alle de såkaldte binære stik udskiftet med udskiftninger af open source , hvilket gjorde hele JDK åben.

Alternative implementeringer

GNU Classpath er det andet vigtigste gratis softwareklasse-bibliotek til Java. I modsætning til andre implementeringer implementerer det kun klassebiblioteket og bruges af mange gratis Java-driftstider (som Kaffe , SableVM , JamVM ).

Apache Harmony var et andet gratis softwareklassebibliotek. Dens mål var at implementere de andre dele af Java-stakken ( Virtual Machine , Compiler og andre værktøjer, der kræves til enhver Java-implementering ).

Se også

Referencer

eksterne links