Jump to content

Java Class Library: Difference between revisions

From Wikipedia, the free encyclopedia
Content deleted Content added
m Added 1 {{Bare URL inline}} tag(s) using a script. For other recently-tagged pages with bare URLs, see Category:Articles with bare URLs for citations from June 2024
Fill bare ref, fix citations
Line 1: Line 1:
{{Cleanup bare URLs|date=August 2022}}
{{more citations needed|date=August 2011}}
{{more citations needed|date=August 2011}}
The '''Java Class Library''' ('''JCL''') 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.
The '''Java Class Library''' ('''JCL''') 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.
Line 11: Line 10:
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]]). The classes that give access to these functions commonly use [[Java Native Interface]] wrappers to access operating system [[API]]s.
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]]). The classes that give access to these functions commonly use [[Java Native Interface]] wrappers to access operating system [[API]]s.


Almost all of JCL is stored in a single [[JAR (file format)|Java archive]] file called "rt.jar" 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<ref>{{cite web
Almost all of JCL is stored in a single [[JAR (file format)|Java archive]] file called "rt.jar" 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<ref>{{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}}</ref> 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.
| url=http://java.sun.com/javase/6/docs/technotes/tools/findingclasses.html
| title=How Classes are Found
| publisher=[[Oracle Corporation]]
| accessdate=2015-12-05}}</ref> 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.


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.<ref>{{cite web
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.<ref>{{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}}</ref>
| 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
}}</ref>


==Conformance==
==Conformance==
Line 56: Line 42:
Before the release of OpenJDK, the [[Java Development Kit|JDK]] was based on a [[Proprietary software|proprietary license]].
Before the release of OpenJDK, the [[Java Development Kit|JDK]] was based on a [[Proprietary software|proprietary license]].


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,<ref>http://www.sun.com/software/opensource/java/faq.jsp#b4 {{Bare URL inline|date=June 2024}}</ref> 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.<ref>{{cite web
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,<ref>{{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}}</ref> 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.<ref>{{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}}</ref> 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.
| 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}}</ref> 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 Microsystems|Sun]] then [[Oracle Corporation|Oracle]] as ''Binary Plugs''<ref>{{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}}</ref> 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,<ref>{{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}}</ref> and less than 1% {{as of|lc=y|2008|05}} and OpenJDK 6<ref>{{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}}</ref><ref>{{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=''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.'' | 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}}</ref>) was<ref>{{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}}</ref> the [[Simple Network Management Protocol|SNMP]] implementation.<ref name="openjdkb10">{{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}}</ref>
Until December 2010, the remaining encumbered part of the JDK was made available by [[Sun Microsystems|Sun]] then [[Oracle Corporation|Oracle]] as ''Binary Plugs''<ref>
{{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
}}
</ref> 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,<ref>{{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}}</ref> and less than 1% {{as of|lc=y|2008|05}} and OpenJDK 6<ref name="fedora9la">{{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
}}</ref><ref name="fedora9redhat">{{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=''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.''
| 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
}}</ref>) was<ref>{{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
}}</ref> the [[Simple Network Management Protocol|SNMP]] implementation.<ref name="openjdkb10">{{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
}}</ref>


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:
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:
* All the audio engine code, including the [[Musical Instrument Digital Interface|software synthesizer]], became open source.<ref name="openjdkb10" /><ref>[http://openjdk.java.net/projects/audio-engine/ audio-engine project page]</ref> The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called ''Gervill'',<ref>{{cite web
* All the audio engine code, including the [[Musical Instrument Digital Interface|software synthesizer]], became open source.<ref name="openjdkb10" /><ref>[http://openjdk.java.net/projects/audio-engine/ audio-engine project page]</ref> The closed-source software synthesizer has been replaced by a new synthesizer developed specifically for OpenJDK called ''Gervill'',<ref>{{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}}</ref>
* All [[cryptography]] classes were released as open-source,<ref>{{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}}</ref>
|url = https://gervill.dev.java.net/
* The code that scales and [[Rasterisation|rasterizes]] [[Computer font|fonts]] uses open source [[FreeType]]<ref>[http://openjdk.java.net/projects/font-scaler/ font-scaler projectpage]</ref><ref name="2dproject">[http://openjdk.java.net/groups/2d/ Java2D project page]</ref><ref>{{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}}</ref>
|archive-url = https://archive.today/20111004052704/https://gervill.dev.java.net/
* The native [[color management]] uses open-source [[LittleCMS]].<ref name="2dproject" /> 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.
|url-status = dead
* The [[Spatial anti-aliasing|anti-aliasing]] graphics [[Rasterisation|rasterizer]] code uses the open source Pisces renderer used in the [[phoneME]] project.<ref name="2dproject" /><ref>[https://phoneme.dev.java.net/ phoneme.dev.java.net/] {{webarchive|url=https://web.archive.org/web/20070610234355/https://phoneme.dev.java.net/ |date=2007-06-10}}</ref><ref>[http://openjdk.java.net/projects/graphics-rasterizer/ graphics-rasterizer project page]</ref>
|archive-date = 2011-10-04
* The [[JavaScript]] plugin is open source (the [[Rhino (JavaScript engine)|JavaScript engine]] itself was open source from the beginning).<ref>{{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=''Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.'' | 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}}</ref>
|title = Gervill – Software Synthesizer
|accessdate = 2008-06-01
}}</ref>
* All [[cryptography]] classes were released as open-source,<ref>{{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
}}</ref>
* The code that scales and [[Rasterisation|rasterizes]] [[Computer font|fonts]] uses open source [[FreeType]]<ref>[http://openjdk.java.net/projects/font-scaler/ font-scaler projectpage]</ref><ref name="2dproject">[http://openjdk.java.net/groups/2d/ Java2D project page]</ref><ref>{{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
}}</ref>
* The native [[color management]] uses open-source [[LittleCMS]].<ref name="2dproject"/> 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.
* The [[Spatial anti-aliasing|anti-aliasing]] graphics [[Rasterisation|rasterizer]] code uses the open source Pisces renderer used in the [[phoneME]] project.<ref name="2dproject"/><ref>[https://phoneme.dev.java.net/ phoneme.dev.java.net/] {{webarchive|url=https://web.archive.org/web/20070610234355/https://phoneme.dev.java.net/ |date=2007-06-10 }}</ref><ref>[http://openjdk.java.net/projects/graphics-rasterizer/ graphics-rasterizer project page]</ref>
* The [[JavaScript]] plugin is open source (the [[Rhino (JavaScript engine)|JavaScript engine]] itself was open source from the beginning).<ref>{{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=''Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.''
| 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
}}</ref>


===Open source release===
===Open source release===
Beginning in December 2010, all the so-called ''binary plugs'' were replaced by [[Open-source model|open source]] replacements, making the entire JDK open.<ref>{{cite web
Beginning in December 2010, all the so-called ''binary plugs'' were replaced by [[Open-source model|open source]] replacements, making the entire JDK open.<ref>{{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'Hair | publisher=[[Oracle Corporation]] | date=December 2010 | accessdate=2011-11-25}}</ref>
| url=http://mail.openjdk.java.net/pipermail/build-dev/2010-December/003881.html
| title=OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed
| author=Kelly O'Hair
| publisher=[[Oracle Corporation]]
| date=December 2010
| accessdate=2011-11-25}}</ref>


==Alternative implementations==
==Alternative implementations==
Line 178: Line 72:


==References==
==References==
{{Reflist|2}}
{{reflist|1=2}}


==External links==
==External links==

Revision as of 19:18, 27 June 2024

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

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). 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[1] 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.[2]

Conformance

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

Main features

JCL Features are accessed through classes provided in packages.

Licensing

Prior licenses

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,[3] 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.[4] 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[5] which were required to build the JDK but not necessary to run it. as of May 2007, the only part of the Class library that remained proprietary and closed-source (4% as of May 2007 for OpenJDK 7,[6] and less than 1% as of May 2008 and OpenJDK 6[7][8]) was[9] the SNMP implementation.[10]

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

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

Alternative implementations

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

References

  1. ^ "How Classes are Found". Oracle Corporation. Retrieved 2015-12-05.
  2. ^ "JDK Module Summary". Oracle Corporation. 2015-10-23. Archived from the original on 2015-12-08. Retrieved 2015-11-29.
  3. ^ "Free and Open Source Java - FAQ". sun.com. May 2007. Archived from the original on May 22, 2007. Retrieved 2024-06-27.
  4. ^ Rich Green (2007-05-08). "Open JDK is here!". Sun Microsystems. Retrieved 2011-11-25.
  5. ^ "OpenJDK Binary Plugs". Sun Microsystems. 2007-05-08. Archived from the original on 2012-08-26. Retrieved 2011-11-25.
  6. ^ Fitzsimmons, Thomas (2007-05-18). "Plans for OpenJDK". Retrieved 2007-05-22.
  7. ^ Angel, Lillian (2008-03-13). "OpenJDK to replace IcedTea in Fedora 9". Archived from the original on 2012-12-10. Retrieved 2008-04-05.
  8. ^ 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.
  9. ^ Herron, David (2007-10-04). "Plans for OpenJDK". Archived from the original on 2007-10-11. Retrieved 2007-10-09.
  10. ^ a b "OpenJDK 6 b10 source posted". 2008-05-30. Retrieved 2008-06-01.
  11. ^ audio-engine project page
  12. ^ "Gervill – Software Synthesizer". Archived from the original on 2011-10-04. Retrieved 2008-06-01.
  13. ^ "Crypto has been added to OpenJDK". 2007-09-27. Retrieved 2007-10-07.
  14. ^ font-scaler projectpage
  15. ^ a b c Java2D project page
  16. ^ "Freetype font rasteriser". 2007-08-07. Retrieved 2007-11-24.
  17. ^ phoneme.dev.java.net/ Archived 2007-06-10 at the Wayback Machine
  18. ^ graphics-rasterizer project page
  19. ^ "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.
  20. ^ Kelly O'Hair (December 2010). "OpenJDK7 and OpenJDK6 Binary Plugs Logic Removed". Oracle Corporation. Retrieved 2011-11-25.