Jump to content
Wikipedia The Free Encyclopedia

Java Class Library

From Wikipedia, the free encyclopedia
Core Java libraries
This article needs additional citations for verification . Please help improve this article by adding citations to reliable sources. Unsourced material may be challenged and removed.
Find sources: "Java Class Library" – news · newspapers · books · scholar · JSTOR
(August 2011) (Learn how and when to remove this message)

The Java Class Library (JCL) is a set of dynamically loadable libraries that Java Virtual Machine (JVM) languages can call at 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 class libraries, containing the functions common to modern operating systems.

JCL serves three purposes within the JVM:

  • Like other standard code libraries, they provide the programmer a well-known set of useful facilities, such as container classes and regular expression processing.
  • The library provides an abstract interface to tasks that would normally depend heavily on the hardware and operating system, such as network access and file access.
  • 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.

Implementation and configuration

[edit ]

JCL is almost entirely written in Java, except for the parts that need direct access to the hardware and operating system (such as for I/O or bitmap graphics), which are instead written in C++.[1] The classes that give access to these functions commonly use Java Native Interface wrappers to access operating system APIs.

Almost all of JCL is stored in a single Java archive file called "rt.jar" which is provided with JRE and JDK distributions. The Java Class Library (rt.jar) is located in the default bootstrap classpath[2] and does not have to appear in the classpath declared for the application. The runtime uses the bootstrap class loader to find the JCL.

The Java Module System (part of the Java 9 release) broke the monolithic "rt.jar" JAR file and modularized the JCL itself in several modules with specified dependencies.[3]

Conformance

[edit ]

Any Java implementation must pass the Java Technology Compatibility Kit tests for compliance, which includes JCL tests.

Main features

[edit ]

JCL Features are accessed through classes provided in packages.

Licensing

[edit ]

Prior licenses

[edit ]

Before the release of OpenJDK, the JDK was based on a proprietary license.

Following their promise to release a fully buildable JDK based on almost completely free and open-source code in the first half of 2007,[4] 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.[5] Sun'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.

Until December 2010, the remaining encumbered part of the JDK was made available by Sun then Oracle as Binary Plugs[6] which were required to build the JDK but not necessary to run it. as of May 2007[update] , the only part of the Class library that remained proprietary and closed-source (4% as of May 2007[update] for OpenJDK 7,[7] and less than 1% as of May 2008[update] and OpenJDK 6[8] [9] ) was[10] the SNMP implementation.[11]

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:

Open source release

[edit ]

Beginning in December 2010, all the so-called binary plugs were replaced by open source replacements, making the entire JDK open.[21]

Alternative implementations

[edit ]

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 runtimes (like Kaffe, SableVM, JamVM).

Apache Harmony was another free software class library. Its aim was to implement the other parts of the Java stack (Virtual Machine, Compiler, and other tools required for any Java implementation).

See also

[edit ]

References

[edit ]
  1. ^ "Based on the OpenJDK sources". OpenJDK . Retrieved 23 October 2021.
  2. ^ "How Classes are Found". Oracle Corporation. Archived from the original on 2009年04月25日. Retrieved 2015年12月05日.
  3. ^ "JDK Module Summary". Oracle Corporation. 2015年10月23日. Archived from the original on 2015年12月08日. Retrieved 2015年11月29日.
  4. ^ "Free and Open Source Java - FAQ". sun.com. May 2007. Archived from the original on May 22, 2007. Retrieved 2024年06月27日.
  5. ^ Rich Green (2007年05月08日). "Open JDK is here!". Sun Microsystems. Archived from the original on 2012年02月07日. Retrieved 2011年11月25日.
  6. ^ "OpenJDK Binary Plugs". Sun Microsystems. 2007年05月08日. Archived from the original on 2012年08月26日. Retrieved 2011年11月25日.
  7. ^ Fitzsimmons, Thomas (2007年05月18日). "Plans for OpenJDK" . Retrieved 2007年05月22日.
  8. ^ Angel, Lillian (2008年03月13日). "OpenJDK to replace IcedTea in Fedora 9". Archived from the original on 2012年12月10日. Retrieved 2008年04月05日.
  9. ^ Wade, Karsten (2008年03月13日). "OpenJDK in Fedora 9!". redhatmagazine.com. Archived from the original on 2008年04月21日. Retrieved 2008年04月05日. 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.
  10. ^ Herron, David (2007年10月04日). "Plans for OpenJDK". Archived from the original on 2007年10月11日. Retrieved 2007年10月09日.
  11. ^ a b "OpenJDK 6 b10 source posted". 2008年05月30日. Archived from the original on 2009年06月18日. Retrieved 2008年06月01日.
  12. ^ "audio-engine project page". Archived from the original on 2007年05月16日. Retrieved 2007年05月19日.
  13. ^ "Gervill – Software Synthesizer". Archived from the original on 2011年10月04日. Retrieved 2008年06月01日.
  14. ^ "Crypto has been added to OpenJDK". 2007年09月27日. Archived from the original on 2007年12月25日. Retrieved 2007年10月07日.
  15. ^ "font-scaler projectpage". Archived from the original on 2015年06月10日. Retrieved 2007年05月19日.
  16. ^ a b c "Java2D project page". Archived from the original on 2007年05月16日. Retrieved 2007年05月19日.
  17. ^ "Freetype font rasteriser". 2007年08月07日. Archived from the original on 2009年01月07日. Retrieved 2007年11月24日.
  18. ^ "Welcome to the PhoneME project". Archived from phoneme.dev.java.net/ the original on 2007年06月10日. {{cite web}}: Check |url= value (help)
  19. ^ "graphics-rasterizer project page". Archived from the original on 2007年05月16日. Retrieved 2007年05月19日.
  20. ^ "Javascript is encumbered and there is no javascript plugin support". IcedTea. 2008年03月11日. Archived from the original on 2008年09月27日. Retrieved 2008年06月01日. Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.
  21. ^ Kelly O'Hair (December 2010). "OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed". Oracle Corporation. Archived from the original on 2022年04月07日. Retrieved 2011年11月25日.
[edit ]
Platforms
Oracle technologies
Platform technologies
Major third-party
technologies
History
JVM languages
Community
Conferences
Organizations
People
Hardware
Systems
Processors
Other
Software
Storage
Performance
Research
Education
Community
People
Acquisitions
Slogans

AltStyle によって変換されたページ (->オリジナル) /