Java Class Library
The Java Class Library is a set of dynamically loadable libraries that Java applications can call at runtime. Because the Java Platform is not dependent on any specific operating system, applications cannot rely on any of the existing libraries. Instead, the Java Platform provides a comprehensive set of standard class libraries, containing much of the same reusable functions commonly found in modern operating systems.
The Java class libraries serve three purposes within the Java Platform. Like other standard code libraries, they provide the programmer a well-known set of functions to perform common tasks, such as maintaining lists of items or performing complex string parsing. In addition, the class libraries provide an abstract interface to tasks that would normally depend heavily on the hardware and operating system. Tasks such as network access and file access are often heavily dependent on the native capabilities of the platform. Finally, some underlying platforms may not support all of the features a Java application expects. In these cases, the class libraries can either emulate those features using whatever is available, or provide a consistent way to check for the presence of a specific feature.
Conformance
Any Java implementation must pass the Java Technology Compatibility Kit tests for compliance.
Packages
Licensing
Following their promise to release a fully buildable JDK based almost completely on free and open source code in the first half of 2007 [1], 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 3rd parties who did not want their code to be released under a free and open-source license [1]. Sun's goal is to replace the parts that remain proprietary and closed source with alternative implementations and make the class library completely free and open source.[2].
As of May 2007, The parts of the Class library that remain proprietary and closed-source are:
- some parts of the audio-engine code (connection to underlying audio systems, and some implementations of higher level functionalities, such as a MIDI synthesizer) [2].
- the code that scale and rasterize fonts (Sun plan to use FreeType as a replacement) [3] [4].
- some parts of the anti-aliasing graphics rasterizer code (one of the possible free and open-source candidates is the Pisces renderer used in the phoneME project) [5] [6].
- the native color management system (Sun plan to use LittleCMS as a replacement) [7].
- some parts of the cryptography extensions used in the Class library, as some providers (as JCE) who makes calls to underlying cryptography implementations [8].
GNU Classpath is the other main free software class library for Java.
References
- ^ "Open JDK is here!". Sun Microsystems. 2007-05-08. Retrieved 2007-05-09.
{{cite web}}
: Check date values in:|date=
(help) - ^ Since there's some encumbered code in the JDK, Sun will continue to use that code in commercial releases until it's replaced by fully-functional free and open-source alternatives