Free Java implementations aresoftware projects that implement Oracle'sJava technologies and are distributed underfree software licences, making themfree software. Sun released most of its Java source code as free software in May 2007, so it can now almost be considered a free Java implementation.[1] Java implementations include compilers, runtimes, class libraries, etc. Advocates of free and open source software refer to free or open sourceJava virtual machine software asfree runtimes orfree Java runtimes.
Some advocates in this movement prefer not to use the term "Java" as it hastrademark issues associated with it. Hence, even though it is a "free Java movement", the term "free Java runtimes" is avoided by them.
The first free project to offer substantial parts of Java platform functionality was likely guavac, which began some time before November 1995.[2][3]
Since then, thefree software movement developed other Java compilers, most notably theGNU Compiler for Java. Others include theEclipse Java Compiler (ECJ), which is maintained by theEclipse Foundation, andJikes, which is no longer actively maintained. Since theGNU Compiler Collection's 4.3 release, GCJ (its Java compiler) is using the ECJparser front-end for parsing Java.[4]
Examples of freeruntime environments includeKaffe,SableVM andgcj.
GNU Classpath is the main free softwareclass library for Java. Most free runtimes use GNU Classpath as their class library.
In May 2005,Apache Harmony was announced, however, the project chose theApache License, which was at the time incompatible with all existing free Java implementations.
Another event in May 2005 was the announcement thatOpenOffice.org 2.0 would depend on Java features which free software implementations couldn't provide. Following controversy, OpenOffice.org adopted a guideline requiring it to work with free Java implementations.
Notable applications that already worked with free software Java implementations before November 2006 includeOpenOffice.org andVuze, both of which work when compiled with GCJ.
On November 13, 2006, Sun released its compiler,javac, under theGNU General Public License.[5]
As of September 2007, as well as javac, Sun has released the code ofHotSpot (thevirtual machine) and almost all theJava Class Library as free software.
Following their promise to release a fully buildableJDK based almost completely on free and open source code in the first half of 2007,[6] Sun released the completesource 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 software licence.[7] Sun has stated that it aims to replace the parts that remain proprietary and closed source with alternative implementations and make the class library completely free and open source. Since there's someencumbered 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.
![]() | This section needs to beupdated. Please help update this article to reflect recent events or newly available information.(January 2014) |
As of May 2008, the only part of the Class library that remains proprietary (4% as of May 2007 for OpenJDK 7,[8][9]and less than 1% as of May 2008 in OpenJDK 6[10][11])is theSNMP implementation.[12]
Since the first May 2007 release,Sun Microsystems, with the help of the community, has released as free software (or replaced with free-software alternatives) almost all the encumbered code:
Because of these previously encumbered components, it was not possible to buildOpenJDK only with free software components. In order to be able to do this before the wholeclass library is made free, and to be able to bundleOpenJDK inFedora Core and other freeLinux distributions,Red Hat has started a project calledIcedTea. It is basically an OpenJDK/GNU Classpath hybrid that can be used to bootstrap OpenJDK using only free software.[23][24]
As of March 2008, theFedora 9 distribution has been released with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7.[11] Some of the stated reasons for this change are:
In June 2008, it was announced thatIcedTea 6 (as the packaged version of OpenJDK onFedora 9) had passed theTechnology Compatibility Kit tests and can claim to be a fully compatible Java 6 implementation.[25][citation needed]
In September 2013, Azul Systems released Zulu, a free, open source build ofOpenJDK forWindows Server and theMicrosoft Azure Cloud. Later releases added support forMac OS X, multiple versions ofLinux and theJava Platform, Standard Edition version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the OpenJDK CommunityTechnology Compatibility Kit.[26]
Amazon have releasedAmazon Corretto a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit. It is released underGPL v2 with theClasspath Exception. Long-term support versions of Java 8 and Java 11 are available. It was first publicly released on January 31, 2019.[27]
In 2017, theEclipse Foundation released AdoptOpenJDK, now namedAdoptium, whose main goal is "to promote and supportfree and open-source high-quality runtimes and associated technology for use across theJava ecosystem."
Wed Nov 22 05:43:07 1995 [...] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: Initial revision
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.
Changing Summary. JavaScript is no longer encumbered, but we still need liveconnect support.