Free Java implementations: Difference between revisions

Content deleted Content added
m After the May 2007 code release: fix name order in reference
 
(19 intermediate revisions by 18 users not shown)
Line 1:
{{Short description|None}}
'''Free Java implementations''' are software projects that implement Oracle's [[Java (software platform)|Java]] technologies and are distributed under [[free software licences]], making them [[free 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.
{{Use mdy dates|date=March 2024}}
 
'''Free Java implementations''' are [[software]] projects that implement Oracle's [[Java (software platform)|Java]] technologies and are distributed under [[free software licences]], making them [[free 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.<ref>{{Cite web|url=https://www.redhat.com/ko/blog/openjdk-and-the-icedtea-project|title=OpenJDK and the IcedTea Project|website=www.redhat.com|language=ko|access-date=2019-12-16}}</ref> Java implementations include compilers, runtimes, class libraries, etc. Advocates of free and open source software refer to free or open source [[Java virtual machine]] software as '''free runtimes''' or '''free Java runtimes'''.
Java implementations include compilers, runtimes, class libraries, etc.
 
Advocates of free and open source software refer to free or open source [[Java virtual machine]] software as '''free runtimes''' or '''free Java runtimes'''.
 
Some advocates in this movement prefer not to use the term "Java" as it has [[trademark]] issues associated with it. Hence, even though it is a "free Java movement", the term "free Java runtimes" is avoided by them.
Line 12 ⟶ 10:
|title=Announcing: guavac 0.2.5, A free compiler for the Java language
|date=1996-09-07
|accessdateaccess-date=2007-06-24
|archive-url=https://web.archive.org/web/20090814181704/http://www.ccs.neu.edu/research/demeter/course/f96/hw/1/guavac-info
|archive-date=2009-08-14
|url-status=dead
}}</ref><ref>{{cite web
|url=http://fresh.t-systems-sfr.com/unix/src/www/guavac-1.2.tar.gz:a/guavac-1.2/compiler/ChangeLog
|title=Changelog of guavac, showing the first release happening in January 1996
|quote=Wed Nov 22 05:43:07 1995 [...] CompilerMain.C, Compiler. C, Compiler.h, lexer.l, parser.y: Initial revision
|access-date=2007-06-24
|archive-url=https://web.archive.org/web/20070928155521/http://fresh.t-systems-sfr.com/unix/src/www/guavac-1.2.tar.gz:a/guavac-1.2/compiler/ChangeLog
|archive-date=2007-09-28
|url-status=dead
}}</ref>
 
Line 22 ⟶ 27:
|url=https://gcc.gnu.org/gcc-4.3/changes.html
|title=GCC 4.3 Release Series -- Changes, New Features, and Fixes
|accessdateaccess-date=2007-10-08
}}</ref>
 
Line 36 ⟶ 41:
 
==Sun's November 2006 announcement==
On 13 November 13, 2006, Sun released its compiler, [[javac]], under the [[GNU General Public License]].<ref>[http://news.cnet.com/Sun-picks-GPL-license-for-Java-code/2100-7344_3-6134584.html Sun picks GPL license for Java code]</ref>
 
As of September 2007, as well as javac, Sun has released the code of [[HotSpot (virtual machine)|HotSpot]] (the [[virtual machine]]) and almost all the [[Java Class Library]] as free software.
 
Following their promise to release a fully buildable [[Java Development Kit|JDK]] based almost completely on free and open source code in the first half of 2007,<ref>[http://www.sun.com/software/opensource/java/faq.jsp#b4 OpenJDK FAQ] {{webarchive |url=https://web.archive.org/web/20070402155851/http://www.sun.com/software/opensource/java/faq.jsp#b4 |date=April 2, 2007 }}</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 3rd parties who did not want their code to be released under a free software licence.<ref>{{cite web
Line 45 ⟶ 50:
| publisher=Sun Microsystems
| date=2007-05-08
| accessdateaccess-date=2007-05-09}}</ref> 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 some [[Proprietary software|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.
 
==After the May 2007 code release==
Line 58 ⟶ 63:
|first = David
|date = 2007-10-04
|accessdateaccess-date = 2007-10-09
|url-status = dead
|archiveurlarchive-url = https://web.archive.org/web/20071011014156/http://weblogs.java.net/blog/robogeek/archive/2007/10/openjdk_encumbr.html
|archivedatearchive-date = 2007-10-11
}}
</ref><ref>
Line 69 ⟶ 74:
| last=Fitzsimmons|first=Thomas
| date=2007-05-18
| accessdateaccess-date=2007-05-22}}
</ref>
and less than 1% as of May 2008 in OpenJDK 6<ref name="fedora9la">
Line 78 ⟶ 83:
|first = Lillian
|date = 2008-03-13
|accessdateaccess-date = 2008-04-05
|url-status = dead
|archiveurlarchive-url = https://web.archive.org/web/20080418133611/http://langel.wordpress.com/2008/03/13/openjdk-in-fedora-9/
|archivedatearchive-date = 2008-04-18
}}
</ref><ref name="fedora9redhat">{{cite web
{{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
| accessdateaccess-date=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/
</ref>)
| archive-date=2008-04-21
| url-status=dead
}}</ref>)
is the [[Simple Network Management Protocol|SNMP]] implementation.<ref name="openJDK_b10">{{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
|accessdateaccess-date=2008-06-01
}}
</ref>
Line 105 ⟶ 113:
* All the audio engine code, including the [[Musical Instrument Digital Interface|software synthesizer]], has been released as open-source.<ref name="openJDK_b10"/><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.istoday/20111004052704/https://gervill.dev.java.net/
|url-status = dead
|archive-date = 2011-10-04
|title = Gervill - Software Synthesizer
|accessdateaccess-date = 2008-06-01
}}</ref>
* All [[cryptography]] classes used in the Class library have been released as free software,<ref>{{cite web
Line 115 ⟶ 123:
|title=Crypto has been added to OpenJDK
|date=2007-09-27
|accessdateaccess-date=2007-10-07
}}</ref>
* [[FreeType]] has replaced the code that scales and [[Rasterisation|rasterizes]] [[Computer font|fonts]].<ref>[http://openjdk.java.net/projects/font-scaler/ font-scaler projectpage]</ref><ref name="2dproject">[http://openjdk.java.net/groups/2d/ Java2D project page]
Line 122 ⟶ 130:
|title=Freetype font rasteriser
|date=2007-08-07
|accessdateaccess-date=2007-11-24
}}</ref>
* [[LittleCMS]] has replaced the native [[color management|color-management]] system.<ref name="2dproject"/> There is a pluggable layer in the JDK, so that the commercial version can use the old color management system and OpenJDK can use LittleCMS.
Line 133 ⟶ 141:
|last=Graham|first=Jim
| date=2007-10-03
| accessdateaccess-date=2007-05-09}}</ref>
* The [[JavaScript]] plugin has been open-sourced ([[Rhino (JavaScript engine)|the JavaScript engine]] itself was open-sourced 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
| accessdateaccess-date=2008-06-01}}</ref>
| 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>
 
Because of these previously encumbered components, it was not possible to build [[OpenJDK]] only with free software components. In order to be able to do this before the whole [[Java Class Library|class library]] is made free, and to be able to bundle [[OpenJDK]] in [[Fedora (operating system)|Fedora Core]] and other free [[Linux]] distributions, [[Red Hat]] has started a project called [[IcedTea]]. It is basically an OpenJDK/[[GNU Classpath]] hybrid that can be used to bootstrap OpenJDK using only free software.<ref>{{cite web
| url=https://web.archive.org/web/20080211190907/http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/5
| archive-url=https://web.archive.org/web/20080211190907/http://article.gmane.org/gmane.comp.java.openjdk.distro-packaging.devel/5
| url-status=dead
| archive-date=2008-02-11
| title=Experimental Build Repository at icedtea.classpath.org
| date=2007-06-07
|last=Andrew|first=Haley
| accessdateaccess-date=2007-06-09}}</ref><ref>{{cite web
| url=http://developer.classpath.org/pipermail/classpath/2007-June/002109.html
| title=Experimental Build Repository at icedtea.classpath.org
| first=Mark
| last=Wielaard
| date=2007-06-07
| accessdateaccess-date=2007-06-09}}</ref>
| archive-date=2007-06-19
| archive-url=https://web.archive.org/web/20070619012918/http://developer.classpath.org/pipermail/classpath/2007-June/002109.html
| url-status=dead
}}</ref>
 
As of March 2008, the [[Fedora (operating system)|Fedora 9]] distribution has been released with OpenJDK 6 instead of the IcedTea implementation of OpenJDK 7.<ref name="fedora9redhat" /> Some of the stated reasons for this change are:
 
* Sun has replaced most of the encumbrances for which IcedTea was providing replacements (less than 1% of encumbered code remains in the [[Java Class Library|class library]], and this code is not necessary to run OpenJDK).
* OpenJDK 6 iswas a stable branch, whereas OpenJDK 7 iswas unstable and not expected to ship a stable release until 2009.
* Sun has licensed the OpenJDK trademark for use in Fedora.{{citation needed|reason=non-primary|date=December 2011}}
 
In June 2008, it was announced that [[IcedTea]] 6 (as the packaged version of OpenJDK on [[Fedora (operating system)|Fedora 9]]) had passed the [[Technology Compatibility Kit]] tests and can claim to be a fully compatible Java 6 implementation.<ref>{{cite web
|url = http://blog.softwhere.org/archives/196
|title = Java is finally Free and Open
Line 167 ⟶ 187:
|first = Rich
|url-status = dead
|archiveurlarchive-url = https://web.archive.org/web/20080620065024/http://blog.softwhere.org/archives/196
|archivedatearchive-date = 2008-06-20
}}
</ref>{{citation needed|reason=non-primary|date=December 2011}}
 
In September 2013, Azul Systems released Zulu, a free, open source build of [[OpenJDK]] for [[Windows Server]] and the [[Microsoft Azure]] Cloud. Later releases added support for [[Mac OS X]], multiple versions of [[Linux]] and the [[Java Platform, Standard Edition]] version 8. Zulu is certified compliant with Java SE 8, 7 and 6 using the OpenJDK Community [[Technology Compatibility Kit]].<ref>{{Cite web|url=http://www.azulsystems.com/products/zulu|title = Core}}</ref>
 
[[Amazon (company)|Amazon]] have releases areleased [[Amazon Corretto]] a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit. It is released under [[GPL]] v2 with the [[GPL linking exception#The classpath exception|Classpath Exception]]. Long -term support versions of Java 8 and Java 11 are available. It was first publicly released on 31 January 31, 2019.<ref>{{cite web|accessdateaccess-date=2019-07-25|title=Amazon Corretto 8 Now Generally Available|url=https://aws.amazon.com/blogs/opensource/amazon-corretto-8-generally-available/|date=31 January 31, 2019|website=Amazon Web Services|author=Arun Gupta}}</ref>
 
In 2017, the [[Eclipse Foundation]] released AdoptOpenJDK, now named [[Adoptium]], whose main goal is "to promote and support [[free and open-source]] high-quality runtimes and associated technology for use across the [[Java (programming language)|Java]] ecosystem."
[[Amazon (company)|Amazon]] have releases a [[Amazon Corretto]] a no-cost, multiplatform, production-ready distribution of the Open Java Development Kit. It is released under [[GPL]] v2 with the [[GPL linking exception#The classpath exception|Classpath Exception]]. Long term support versions of Java 8 and Java 11 are available. It was first publicly released on 31 January 2019.<ref>{{cite web|accessdate=2019-07-25|title=Amazon Corretto 8 Now Generally Available|url=https://aws.amazon.com/blogs/opensource/amazon-corretto-8-generally-available/|date=31 January 2019|website=Amazon Web Services|author=Arun Gupta}}</ref>
 
==See also==
Line 180 ⟶ 202:
 
* [[Java (software platform)]]
* [[Javacjavac]]
* [[HotSpot (virtual machine)|HotSpot]]
* [[Apache Harmony]]
* [[OpenJDK]]
* [[GNU Classpath]], and [[GNU Compiler for Java|GCJ]], and [[GNU Interpreter for Java|GIJ]]
* [[IcedTea]]
* [[JamVM]]
* [[IKVM.NET]]
* [[List of Java virtual machines]]
* [[Comparison of Java virtual machines]]
* [[Adoptium]]
 
==References==