<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Class_Library</id>
	<title>Java Class Library - Revision history</title>
	<link rel="self" type="application/atom+xml" href="http://debianws.lexgopc.com/wiki143/index.php?action=history&amp;feed=atom&amp;title=Java_Class_Library"/>
	<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Class_Library&amp;action=history"/>
	<updated>2026-05-03T12:33:06Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.43.1</generator>
	<entry>
		<id>http://debianws.lexgopc.com/wiki143/index.php?title=Java_Class_Library&amp;diff=4707220&amp;oldid=prev</id>
		<title>129.97.124.58: /* Implementation and configuration */</title>
		<link rel="alternate" type="text/html" href="http://debianws.lexgopc.com/wiki143/index.php?title=Java_Class_Library&amp;diff=4707220&amp;oldid=prev"/>
		<updated>2025-04-01T18:56:16Z</updated>

		<summary type="html">&lt;p&gt;&lt;span class=&quot;autocomment&quot;&gt;Implementation and configuration&lt;/span&gt;&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;{{Short description|Core Java libraries}}&lt;br /&gt;
{{more citations needed|date=August 2011}}&lt;br /&gt;
The &amp;#039;&amp;#039;&amp;#039;Java Class Library&amp;#039;&amp;#039;&amp;#039; (&amp;#039;&amp;#039;&amp;#039;JCL&amp;#039;&amp;#039;&amp;#039;) is a set of [[Library (computer science)#Dynamic linking|dynamically loadable libraries]] that [[List of JVM languages|Java Virtual Machine (JVM) languages]] can call at [[Run time (program lifecycle phase)|run time]]. Because the [[Java Platform]] is not dependent on a specific [[operating system]], applications cannot rely on any of the platform-native libraries. Instead, the Java Platform provides a comprehensive set of [[Standard library|standard class libraries]], containing the functions  common to modern operating systems.&lt;br /&gt;
&lt;br /&gt;
JCL serves three purposes within the JVM:&lt;br /&gt;
* Like other [[Standard library|standard code libraries]], they provide the programmer a well-known set of useful facilities, such as [[Collection class|container classes]] and [[regular expression]] processing.&lt;br /&gt;
* The library provides an abstract interface to tasks that would normally depend heavily on the hardware and operating system, such as [[Computer networking|network]] access and [[Computer file|file]] access.&lt;br /&gt;
* Some underlying platforms may not support all of the features a Java application expects. In these cases, the library implementation can either emulate those features or provide a consistent way to check for the presence of a specific feature.&lt;br /&gt;
&lt;br /&gt;
==Implementation and configuration==&lt;br /&gt;
JCL is almost entirely written in Java, except for the parts that need direct access to the [[Computer hardware|hardware]] and [[operating system]] (such as for [[Input/output|I/O]] or [[Rasterisation|bitmap graphics]]), which are instead written in [[C++]].&amp;lt;ref&amp;gt;{{cite web|url=https://github.com/openjdk/jdk|title=Based on the OpenJDK sources|access-date=23 October 2021|publisher=[[OpenJDK]]}}&amp;lt;/ref&amp;gt; The classes that give access to these functions commonly use [[Java Native Interface]] wrappers to access operating system [[API]]s.&lt;br /&gt;
&lt;br /&gt;
Almost all of JCL is stored in a single [[JAR (file format)|Java archive]] file called &amp;quot;rt.jar&amp;quot; which is provided with [[Java Runtime Environment|JRE]] and [[Java Development Kit|JDK]] distributions. The Java Class Library (rt.jar) is located in the default bootstrap classpath&amp;lt;ref&amp;gt;{{cite web | url=http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html | title=How Classes are Found | publisher=[[Oracle Corporation]] | accessdate=2015-12-05 | archive-date=2009-04-25 | archive-url=https://web.archive.org/web/20090425152829/http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html | url-status=live }}&amp;lt;/ref&amp;gt; and does not have to appear in the [[Classpath (Java)|classpath]] declared for the application. The [[Java Runtime Environment|runtime]] uses the bootstrap class loader to find the JCL.&lt;br /&gt;
&lt;br /&gt;
The [[Java Module System]] (part of the [[Java 9]] release) broke the monolithic &amp;quot;rt.jar&amp;quot; JAR file and modularized the JCL itself in several modules with specified dependencies.&amp;lt;ref&amp;gt;{{cite web | url=http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html | title=JDK Module Summary | publisher=[[Oracle Corporation]] | date=2015-10-23 | accessdate=2015-11-29 | archive-date=2015-12-08 | archive-url=https://web.archive.org/web/20151208074800/http://cr.openjdk.java.net/~mr/jigsaw/ea/module-summary.html | url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Conformance==&lt;br /&gt;
Any Java implementation must pass the Java [[Technology Compatibility Kit]] tests for compliance, which includes JCL tests.&lt;br /&gt;
&lt;br /&gt;
==Main features==&lt;br /&gt;
{{Main|Java Platform, Standard Edition}}&lt;br /&gt;
JCL Features are accessed through [[Class (computer science)|classes]] provided in [[Java package|packages]].&lt;br /&gt;
* {{Javadoc:SE|package=java.lang|java/lang}} contains fundamental classes and [[interface (Java)|interfaces]] closely tied to the language and [[Java Runtime Environment|runtime system]].&lt;br /&gt;
* [[Input/output|I/O]] and [[Computer networking|networking]] access the platform [[file system]], and more generally [[Computer network|networks]] through the {{Javadoc:SE|package=java.io|java/io}}, {{Javadoc:SE|package=java.nio|java/nio}} and {{Javadoc:SE|package=java.net|java/net}} packages. For networking, [[SCTP]] is available through {{Javadoc:SE|package=com.sun.nio.sctp|com/sun/nio/sctp|module=jdk.sctp}}.&lt;br /&gt;
* [[java.math|Mathematics package]]: {{Javadoc:SE|package=java.math|java/math}} provides mathematical expressions and evaluation, as well as arbitrary-precision decimal and integer number datatypes.&lt;br /&gt;
* [[Collection class|Collections]] and Utilities : built-in Collection [[data structure]]s, and utility classes, for [[regular expression]]s, [[Concurrent computing|concurrency]], [[Computer data logging|logging]] and [[data compression]].&lt;br /&gt;
* [[GUI]] and [[2D computer graphics|2D Graphics]]: the [[Abstract Window Toolkit|AWT]] package ({{Javadoc:SE|package=java.awt|java/awt|module=java.desktop}}) basic GUI operations and binds to the underlying native system. It also contains the 2D Graphics API. The [[Swing (java)|Swing]] package ({{Javadoc:SE|package=javax.swing|javax/swing|module=java.desktop}}) is built on AWT and provides a platform-independent [[widget toolkit]], as well as a [[pluggable look and feel]]. It also deals with editable and non-editable text components.&lt;br /&gt;
* Sound: interfaces and classes for reading, writing, [[Music sequencer|sequencing]], and [[Synthesizer|synthesizing]] of sound data.&lt;br /&gt;
* Text: {{Javadoc:SE|package=java.text|java/text}} deals with text, dates, numbers and messages.&lt;br /&gt;
* Image package: {{Javadoc:SE|package=java.awt.image|java/awt/image|module=java.desktop}} and {{Javadoc:SE|package=javax.imageio|javax/imageio|module=java.desktop}} provide APIs to write, read, and modify images.&lt;br /&gt;
* [[XML]]: [[Simple API for XML|SAX]], [[Document Object Model|DOM]], [[StAX]], [[XSL Transformations|XSLT transforms]], [[XPath]] and various APIs for [[Web service]]s, as [[SOAP|SOAP protocol]] and [[Java API for XML Web Services|JAX-WS]].&lt;br /&gt;
* Security is provided by {{Javadoc:SE|package=java.security|java/security}} and encryption services are provided by {{Javadoc:SE|package=javax.crypto|javax/crypto}}.&lt;br /&gt;
* [[Database]]s: access to [[SQL]] databases via {{Javadoc:SE|package=java.sql|java/sql|module=java.sql}}&lt;br /&gt;
* Access to Scripting engines: The {{Javadoc:SE|package=javax.script|javax/script|module=java.scripting}} package gives access to any conforming [[Scripting language]].&lt;br /&gt;
* [[Java applet|Applets]]: {{Javadoc:SE|package=java.applet|java/applet|module=java.desktop}} allows applications to be downloaded over a network and run within a guarded sandbox&lt;br /&gt;
* [[JavaBean|Java Beans]]: {{Javadoc:SE|package=java.beans|java/beans|module=java.desktop}} provides ways to manipulate reusable components.&lt;br /&gt;
* Introspection and reflection:  [http://docs.oracle.com/javase/7/docs/api/java/lang/Class.html java.lang.Class] represents a class, but other classes such as Method and Constructor are available in {{Javadoc:SE|package=java.lang.reflect|java/lang/reflect}}.&lt;br /&gt;
&lt;br /&gt;
==Licensing==&lt;br /&gt;
{{See also|Free Java implementations|OpenJDK}}&lt;br /&gt;
&lt;br /&gt;
===Prior licenses===&lt;br /&gt;
Before the release of OpenJDK, the [[Java Development Kit|JDK]] was based on a [[Proprietary software|proprietary license]].&lt;br /&gt;
&lt;br /&gt;
Following their promise to release a fully buildable [[Java Development Kit|JDK]] based on almost completely free and open-source code in the first half of 2007,&amp;lt;ref&amp;gt;{{Cite web |date=May 2007 |title=Free and Open Source Java - FAQ |url=http://www.sun.com/software/opensource/java/faq.jsp#b4 |url-status=dead |archive-url=https://web.archive.org/web/20070522170749/http://www.sun.com/software/opensource/java/faq.jsp#b4 |archive-date=May 22, 2007 |access-date=2024-06-27 |website=sun.com |language=en}}&amp;lt;/ref&amp;gt; Sun released the complete [[source code]] of the Class Library under the [[GPL]] on May 8, 2007, except some limited parts that were licensed by Sun from third parties who did not want their code to be released under an open-source license.&amp;lt;ref&amp;gt;{{cite web | url=http://mail.openjdk.java.net/pipermail/announce/2007-May.txt | title=Open JDK is here! | author=Rich Green | publisher=[[Sun Microsystems]] | date=2007-05-08 | accessdate=2011-11-25 | archive-date=2012-02-07 | archive-url=https://web.archive.org/web/20120207052347/http://mail.openjdk.java.net/pipermail/announce/2007-May.txt | url-status=live }}&amp;lt;/ref&amp;gt; Sun&amp;#039;s goal was to replace the parts that remain proprietary and closed source with alternative implementations and make the Class Library completely free and open source.&lt;br /&gt;
&lt;br /&gt;
Until December 2010, the remaining encumbered part of the JDK was made available by [[Sun Microsystems|Sun]] then [[Oracle Corporation|Oracle]] as &amp;#039;&amp;#039;Binary Plugs&amp;#039;&amp;#039;&amp;lt;ref&amp;gt;{{cite web | url=http://openjdk.java.net/legal/binary-plugs-2007-05-08.html | title=OpenJDK Binary Plugs | publisher=[[Sun Microsystems]] | date=2007-05-08 | accessdate=2011-11-25 | archive-url=https://web.archive.org/web/20120826021741/http://openjdk.java.net/legal/binary-plugs-2007-05-08.html | archive-date=2012-08-26 | url-status=dead}}&amp;lt;/ref&amp;gt; which were required to build the JDK but not necessary to run it. {{As of|lc=y|2007|05}}, the only part of the Class library that remained proprietary and closed-source (4% {{as of|lc=y|2007|05}} for OpenJDK 7,&amp;lt;ref&amp;gt;{{cite web | url=http://fitzsim.org/blog/?p=17 | title=Plans for OpenJDK | last=Fitzsimmons|first=Thomas | date=2007-05-18 | accessdate=2007-05-22}}&amp;lt;/ref&amp;gt; and less than 1% {{as of|lc=y|2008|05}} and OpenJDK 6&amp;lt;ref&amp;gt;{{cite web |url = http://langel.wordpress.com/2008/03/13/openjdk-in-fedora-9/ |title = OpenJDK to replace IcedTea in Fedora 9 |last = Angel |first = Lillian |date = 2008-03-13 |accessdate = 2008-04-05 |url-status = dead |archiveurl = https://archive.today/20121210052442/http://langel.wordpress.com/2008/03/13/openjdk-in-fedora-9/ |archivedate = 2012-12-10}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web | url=http://developer.redhatmagazine.com/2008/03/12/openjdk-to-replace-icedtea-in-fedora-9/ | title=OpenJDK in Fedora 9! | last=Wade | first=Karsten | publisher=redhatmagazine.com | quote=&amp;#039;&amp;#039;Thomas Fitzsimmons updated the Fedora 9 release notes source pages to reflect that Fedora 9 would ship with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7. Fedora 9 (Sulphur) is due to release in May 2008.&amp;#039;&amp;#039; | date=2008-03-13 | accessdate=2008-04-05 | archive-url=https://web.archive.org/web/20080421100346/http://developer.redhatmagazine.com/2008/03/12/openjdk-to-replace-icedtea-in-fedora-9/ | archive-date=2008-04-21 | url-status=dead}}&amp;lt;/ref&amp;gt;) was&amp;lt;ref&amp;gt;{{cite web |url = http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html |title = Plans for OpenJDK |last = Herron |first = David |date = 2007-10-04 |accessdate = 2007-10-09 |url-status = dead |archiveurl = https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html |archivedate = 2007-10-11}}&amp;lt;/ref&amp;gt; the [[Simple Network Management Protocol|SNMP]] implementation.&amp;lt;ref name=&amp;quot;openjdkb10&amp;quot;&amp;gt;{{cite web |url=http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html |title=OpenJDK 6 b10 source posted |date=2008-05-30 |accessdate=2008-06-01 |archive-date=2009-06-18 |archive-url=https://web.archive.org/web/20090618054843/http://mail.openjdk.java.net/pipermail/jdk6-dev/2008-May/000058.html |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Since the first May 2007 release, Sun, with the help of the community, released as open-source or replaced with open-source alternatives almost all the encumbered code:&lt;br /&gt;
* All the audio engine code, including the [[Musical Instrument Digital Interface|software synthesizer]], became open source.&amp;lt;ref name=&amp;quot;openjdkb10&amp;quot; /&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://openjdk.java.net/projects/audio-engine/ |title=audio-engine project page |access-date=2007-05-19 |archive-date=2007-05-16 |archive-url=https://web.archive.org/web/20070516132340/http://openjdk.java.net/projects/audio-engine/ |url-status=live }}&amp;lt;/ref&amp;gt; The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called &amp;#039;&amp;#039;Gervill&amp;#039;&amp;#039;,&amp;lt;ref&amp;gt;{{cite web |url = https://gervill.dev.java.net/ |archive-url = https://archive.today/20111004052704/https://gervill.dev.java.net/ |url-status = dead |archive-date = 2011-10-04 |title = Gervill – Software Synthesizer |accessdate = 2008-06-01}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* All [[cryptography]] classes were released as open-source,&amp;lt;ref&amp;gt;{{cite web |url=http://mail.openjdk.java.net/pipermail/security-dev/2007-September/000015.html |title=Crypto has been added to OpenJDK |date=2007-09-27 |accessdate=2007-10-07 |archive-date=2007-12-25 |archive-url=https://web.archive.org/web/20071225035137/http://mail.openjdk.java.net/pipermail/security-dev/2007-September/000015.html |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* The code that scales and [[Rasterisation|rasterizes]] [[Computer font|fonts]] uses open source [[FreeType]]&amp;lt;ref&amp;gt;{{Cite web |url=http://openjdk.java.net/projects/font-scaler/ |title=font-scaler projectpage |access-date=2007-05-19 |archive-date=2015-06-10 |archive-url=https://web.archive.org/web/20150610021721/http://openjdk.java.net/projects/font-scaler/ |url-status=live }}&amp;lt;/ref&amp;gt;&amp;lt;ref name=&amp;quot;2dproject&amp;quot;&amp;gt;{{Cite web |url=http://openjdk.java.net/groups/2d/ |title=Java2D project page |access-date=2007-05-19 |archive-date=2007-05-16 |archive-url=https://web.archive.org/web/20070516132229/http://openjdk.java.net/groups/2d/ |url-status=live }}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{cite web |url=http://mail.openjdk.java.net/pipermail/font-scaler-dev/2007-August/000011.html |title=Freetype font rasteriser |date=2007-08-07 |accessdate=2007-11-24 |archive-date=2009-01-07 |archive-url=https://web.archive.org/web/20090107195849/http://mail.openjdk.java.net/pipermail/font-scaler-dev/2007-August/000011.html |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* The native [[color management]] uses open-source [[LittleCMS]].&amp;lt;ref name=&amp;quot;2dproject&amp;quot; /&amp;gt; There is a pluggable layer in the JDK, so that the commercial release of Java can use the original, proprietary color management system and OpenJDK can use LittleCMS.&lt;br /&gt;
* The [[Spatial anti-aliasing|anti-aliasing]] graphics [[Rasterisation|rasterizer]] code uses the open source Pisces renderer used in the [[phoneME]] project.&amp;lt;ref name=&amp;quot;2dproject&amp;quot; /&amp;gt;&amp;lt;ref&amp;gt;{{cite web|url=https://phoneme.dev.java.net/ phoneme.dev.java.net/ |title=Welcome to the PhoneME project |archive-url=https://web.archive.org/web/20070610234355/https://phoneme.dev.java.net/ |archive-date=2007-06-10}}&amp;lt;/ref&amp;gt;&amp;lt;ref&amp;gt;{{Cite web |url=http://openjdk.java.net/projects/graphics-rasterizer/ |title=graphics-rasterizer project page |access-date=2007-05-19 |archive-date=2007-05-16 |archive-url=https://web.archive.org/web/20070516132602/http://openjdk.java.net/projects/graphics-rasterizer/ |url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
* The [[JavaScript]] plugin is open source (the [[Rhino (JavaScript engine)|JavaScript engine]] itself was open source from the beginning).&amp;lt;ref&amp;gt;{{cite web | url=http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=85 | title=Javascript is encumbered and there is no javascript plugin support. | publisher=[[IcedTea]] | quote=&amp;#039;&amp;#039;Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.&amp;#039;&amp;#039; | date=2008-03-11 | accessdate=2008-06-01 | archive-date=2008-09-27 | archive-url=https://web.archive.org/web/20080927185957/http://icedtea.classpath.org/bugzilla/show_bug.cgi?id=85 | url-status=dead}}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
===Open source release===&lt;br /&gt;
Beginning in December 2010, all the so-called &amp;#039;&amp;#039;binary plugs&amp;#039;&amp;#039; were replaced by [[Open-source model|open source]] replacements, making the entire JDK open.&amp;lt;ref&amp;gt;{{cite web | url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html | title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed | author=Kelly O&amp;#039;Hair | publisher=[[Oracle Corporation]] | date=December 2010 | accessdate=2011-11-25 | archive-date=2022-04-07 | archive-url=https://web.archive.org/web/20220407115622/http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html | url-status=live }}&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==Alternative implementations==&lt;br /&gt;
[[GNU Classpath]] is the other main free software class library for Java. Contrary to other implementations, it only implements the Class Library, and is used by many [[Free Java implementations|free Java runtimes]] (like [[Kaffe]], [[SableVM]], [[JamVM]]).&lt;br /&gt;
&lt;br /&gt;
[[Apache Harmony]] was another free software class library. Its aim was to implement the other parts of the Java stack ([[Java virtual machine|Virtual Machine]], [[Java compiler|Compiler]], and other tools required for any [[Free Java implementations|Java implementation]]).&lt;br /&gt;
&lt;br /&gt;
==See also==&lt;br /&gt;
{{Portal|Computer programming}}&lt;br /&gt;
* [[Java Platform, Standard Edition]]&lt;br /&gt;
* [[List of Java APIs]]&lt;br /&gt;
* [[OpenJDK]]&lt;br /&gt;
* [[Free Java implementations]]&lt;br /&gt;
* [[Standard library]]&lt;br /&gt;
* [[Java applet]]&lt;br /&gt;
&lt;br /&gt;
==References==&lt;br /&gt;
{{reflist|1=2}}&lt;br /&gt;
&lt;br /&gt;
==External links==&lt;br /&gt;
* [http://java.sun.com/j2se/ Java SE Main page]&lt;br /&gt;
* {{Javadoc:SE}}&lt;br /&gt;
* [http://java.sun.com/reference/api/index.html Java SE API documentation]&lt;br /&gt;
* Java software development kits (status {{As of|2006|alt=as of August 2006}}):&lt;br /&gt;
** [https://web.archive.org/web/20070610111552/https://jdk7.dev.java.net/ 1.7] (early development)&lt;br /&gt;
** [http://java.sun.com/javase/6/ 1.6] (stable, current)&lt;br /&gt;
** [http://java.sun.com/j2se/1.5.0/ 1.5] (stable)&lt;br /&gt;
** [http://java.sun.com/j2se/1.4.2/ 1.4] (stable)&lt;br /&gt;
** [http://java.sun.com/j2se/1.3/ 1.3] (obsolete)&lt;br /&gt;
&lt;br /&gt;
{{Java (Sun)}}&lt;br /&gt;
{{Sun Microsystems}}&lt;br /&gt;
&lt;br /&gt;
[[Category:Java (programming language)]]&lt;br /&gt;
[[Category:Java (programming language) libraries]]&lt;/div&gt;</summary>
		<author><name>129.97.124.58</name></author>
	</entry>
</feed>