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 .
-
java.langindeholder grundlæggende klasser og grænseflader tæt knyttet til sprog- og runtime-systemet . -
I / O og netværk får adgang til platformens filsystem og mere generelt netværk gennem
java.io,java.nioogjava.netpakker. Til netværk er SCTP tilgængelig viacom.sun.nio.sctp. -
Matematikpakke :
java.mathgiver matematiske udtryk og evaluering samt datatyper med vilkårlig præcision og decimaltal og heltal. - Samlinger og hjælpeprogrammer: indbyggede datastrukturer til samling og hjælpeklasser til regulære udtryk , samtidighed , logning og datakomprimering .
-
GUI og 2D-grafik : AWT- pakke (
java.awt) grundlæggende GUI-operationer og binder til det underliggende native system. Den indeholder også 2D Graphics API. Den Swing pakke (javax.swing) er bygget på AWT og giver en platform-uafhængig toolkit , samt en Pluggable udseende . Det beskæftiger sig også med redigerbare og ikke-redigerbare tekstkomponenter. - Lyd: grænseflader og klasser til læsning, skrivning, sekventering og syntese af lyddata.
- Tekst:
java.textbeskæftiger sig med tekst, datoer, tal og meddelelser. - Billedpakke:
java.awt.imageogjavax.imageiolever API'er til at skrive, læse og ændre billeder. - XML : SAX , DOM , StAX , XSLT-transformationer , XPath og forskellige API'er til webtjenester , som SOAP-protokol og JAX-WS .
- CORBA og RMI API'er, herunder en indbygget ORB
- Sikkerhed leveres af,
java.securityog krypteringstjenester leveres afjavax.crypto. -
Databaser : adgang til SQL- databaser via
java.sql - Adgang til scripting-motorer:
javax.scriptPakken giver adgang til ethvert overensstemmelse med scripting-sprog . -
Applets :
java.appletgør det muligt at downloade applikationer over et netværk og køre i en beskyttet sandkasse -
Java Beans :
java.beansgiver måder at manipulere genanvendelige komponenter på. - Introspektion og refleksion: java.lang.Class repræsenterer en klasse, men andre klasser såsom Method og Constructor er tilgængelige i
java.lang.reflect.
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å
- Java Platform, Standardudgave
- Liste over Java API'er
- OpenJDK
- Gratis Java-implementeringer
- Standardbibliotek
- Java-applet
Referencer
eksterne links
- Java SE hovedside
- Java SE 10 API Javadocs
- Java SE API-dokumentation
- Java-softwareudviklingssæt (status fra august 2006):